0

我有以下代码,如下所示:

<div id="container">
// 3 lines other code here
<a hef="#" id="agreelink"><input id="agree" name="agree" value="Agree" style="position:relataive;border-style:none" /></a>
<input id="disagree" name="disagree" value="Disagree" style="position:relataive;border-style:none" />
<input id="abstain" name="abstain" value="Abstain" style="position:relataive;border-style:none" />
// 2 more lines here
</div>

然后我有一个我正在使用的功能,.live()因为元素是动态的并且它不断复制火,我需要移动到.on(). 因此,我尝试触发任何这些按钮的功能代码如下:

<$('#container').on('click', 'input', function() {
alert($(this).attr('name'));
});

<$('#container').on('click', '#agree', function() {
alert($(this).attr('name'));
});

<$('#container').on('click', 'a', function() {
alert($(this).attr('id'));
});

但是我不能让它着火,我已经在网上搜索并尝试并测试了它,但我确定我做的不对,只是不确定它是什么。谁能建议我哪里出错了?

谢谢

4

2 回答 2

1

尝试将它们包裹起来$(document).ready()

$(document).ready(function(){

    $('#container').on('click', 'input', function() 
    { 
       alert($(this).attr('id')); 
    });

});
于 2012-10-20T19:58:15.323 回答
1

你也可以试试这个: http: //jsfiddle.net/VVfUK/ 我用过live(),因为它是你的首选,用来e.stopPropagation()阻止click事件冒泡。

希望能帮助到你 :-)

于 2012-10-20T20:03:45.410 回答