这个问题我显示的问题。
http://jsfiddle.net/mjmitche/Sy2G4/
我正在使用jQuery delegate()来创建将响应同一点击事件的段落,即使这些新段落是在文档之后创建的。我知道委托已被on()取代,但我不认为on()具有该功能。无论如何,我甚至不能让代表以我想要的方式工作。正如您在小提琴中看到的那样,新段落对点击不敏感。
你能解释一下我做错了吗?
$(document).ready(function(){
$('p').delegate(this, 'click', function(){
$(this).after('<p>"No click me!"</p>');
});
});
<p>click me!</p>
答案 0 :(得分:2)
jQuery on与委托合作。
$('.mywrapper').on('click', 'p', function(){
$(this).after('<p>No, click me!</p>');
});
HTML
<div class="mywrapper">
<p>Click me!</p>
</div>
您选择容器元素(会挂起的东西)并告诉它从段落标记(当前和未来)触发。
答案 1 :(得分:1)
您错误地将点击处理程序委派给p
。相反,您的代码应该更像:
$('body').delegate('p', 'click', function(){/*your click handler*/});
不同之处在于,现在侦听器已连接到body
,任何传播到它的点击事件都会根据p
选择器资格进行验证,然后才会执行回调。
答案 2 :(得分:0)
试试这个:
$(document).ready(function(){
$('body').delegate('p', 'click', function(){
$(this).after('<p>"No click me!"</p>');
});
});
答案 3 :(得分:0)
试试这个
$(document).ready(function(){
$('body').delegate('p', 'click', function(){
$(this).after('<p>"No click me!"</p>');
});
});