[英]Jquery Event Delegation Issue
任何人都可以建议我在哪里出错吗? news_active
是一个静态div,其他一切都通过ajax调用加载,没有任何东西被触发警报,相当难倒?!
$('#news_active').load('ajax.php', function() {
// Delete news active
$('#news_delete').on('click', function() {
var vNid = $('#news_delete').attr('data-nid').val();
alert(vNid);
//$('#news_active').load('ajax.php?nid='+vNid);
});
});
按钮看起来像这样,有多个按钮加载了不同的data-nid值:
<button id="news_delete" data-nid="1">Delete</button>
由于news_delete
是动态加载的,因此您需要使用event delegation
来注册事件处理程序,如:
// New way (jQuery 1.7+) - .on(events, selector, handler)
$('#news_active').on('click', '#news_delete', function(event) {
var vNid = $('#news_delete').data('nid');
alert(vNid);
});
此外,在代码中获取data-nid
属性值的方法也不正确。
使用这个:
var vNid = $('#news_delete').attr('data-nid'); // No need of .val() here
alert(vNid);
或者只是使用.data()
var vNid = $('#news_delete').data('nid');
alert(vNid);
var vNid = $('#news_delete').attr('data-nid').val(); //remove the value it
// will return the value of button
改为
var vNid = $('#news_delete').attr('data-nid');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.