唯一标识点击并执行一次

时间:2012-06-07 01:43:56

标签: jquery

<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”将允许我识别 但我不能静态定义这个。 MEAN我只能使用.click。因为我的uni1&lt; - 是DYNAMIC我可以拥有uni100。 或者Uni10000(这是用户选择的单数)

我的问题是如何为每种输入类型唯一标识每个按钮。 点击按钮后我可以使用

$(".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");})})

2 个答案:

答案 0 :(得分:1)

我已经尝试了你的例子,它对我很好。 http://jsfiddle.net/3yQ4W/

如果它被提示4次,或者是因为你已经宣告了4次,或者因为你有一些奇怪的循环,你没有向我们展示。

编辑:

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

});

答案 1 :(得分: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/