有谁能建议我在哪里出错? 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>
答案 0 :(得分:2)
您应该使用data()
方法:
var vNid = $('#news_delete').data('nid');
或仅attr('data-nid')
没有val()
。
val()
正在尝试获取Element.value
属性,但您没有button
。
答案 1 :(得分:2)
由于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);
答案 2 :(得分:0)
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');