0
<div id = uni1>
        <input type=button class=click rel="1">
</div>
<div id = uni2>
        <input type=button class=click rel="2">
</div>
<div id = uni3>
        <input type=button class=click rel="3">
</div>
<div id = uni4>
        <input type=button class=click rel="4">
</div>

$(".click").click(function()
{
    alert("Help");
})

我在识别 jquery 的单击按钮时遇到问题,这将提示警报 4 次。“#uni1 .click”将允许我识别但我不能静态定义它。意思是我只能使用.click。因为我的 uni1 <-- 是动态的,所以我最多可以拥有 uni100。或 Uni10000(这是拥有 uni 数量的用户选择)

我的问题是我将如何为每种输入类型唯一地识别每个按钮。单击按钮后,我可以使用

$(".click").click(function()
{
    $(this).parent().attr('id');
//it doesn't solve the problem that alert will still be executed 4 times. i want to have click being uniquely identify upon user click.
    alert("Help");
})

<div id=uni>
    <div id = uni1>
            <input type=button class=click rel="1">
    </div>
    <div id = uni2>
            <input type=button class=click rel="2">
    </div>
    <div id = uni3>
            <input type=button class=click rel="3">
    </div>
    <div id = uni4>
            <input type=button class=click rel="4">
    </div>
</div>

$("#uni"+i).load(abc.html,function(){ $(".click").click(funcion(){ alert("help");})})
4

2 回答 2

1

我试过你的例子,它对我来说很好。http://jsfiddle.net/3yQ4W/

如果它被提示 4 次,要么是因为你已经声明了 4 次,要么是因为你有一些奇怪的循环,你没有向我们展示。

编辑:

$("body").on('click','.click',function(){
   alert($(this).parent().attr('id'));

});
于 2012-06-07T01:51:34.300 回答
0

我认为您可能需要使用闭包。Javascript 可以是这样的:

(function(){
  var inputs = $(".click");

  for(var i = 0; i < inputs.length; i++){
    inputs[i].onclick = (function(n){
                           return function(){
                                   alert(n)
                                  }
                         })(i)    
  }

})()

所以每个链接都有自己的 onclick 事件。单击一个将提醒其输入数组的索引。您也可以查看 jsfiddle:http: //jsfiddle.net/zhujy_8833/YWr7z/

于 2012-06-07T02:15:45.993 回答