【发布时间】:2014-08-06 18:15:48
【问题描述】:
假设我有这个:
<div id='container'>
</div>
<input type='button' id='newTest' value='new' />
还有一些 JQuery/JavaScript:
$('#newTest').click( function() {
var newDiv = "<div class='test'>Click Me</div>";
$('#container').append(newDiv);
apply_click();
});
function apply_click() {
$('.test').click( function() {
alert('clicked');
});
}
创建的每个新的“测试”div 在单击时都应该发出警报...但是每次我们创建一个新的“测试”div 时,.click 功能都会再次应用于所有这些,这意味着如果我单击“新” ' 按钮 3 次,然后单击第一个 'Click Me' div,依次弹出 3 个 'clicked' 警报...问题是:如何使 apply_click() 函数仅适用于尚未应用的元素适用于...?
如果我让 apply_click() 接受一个引用新创建元素的参数,我想可能有办法做到这一点,但我不确定它是如何工作的。
【问题讨论】:
-
使用:
$('.test').off('click').on('click'...明白了吗? -
我的建议有效吗?想要答案吗?
标签: javascript jquery html css