添加jQuery行后,jQuery不起作用
我没有几行代码与这个脚本相匹配添加jQuery行后,jQuery不起作用,jquery,reload,Jquery,Reload,我没有几行代码与这个脚本相匹配 $("a.remove").click(function(){ var id = $(this).attr('id') var user = $(this).attr('value') $.ajax({ success : function(){ var url = "includes/action.php?page=access&action=remove"; var
$("a.remove").click(function(){
var id = $(this).attr('id')
var user = $(this).attr('value')
$.ajax({
success : function(){
var url = "includes/action.php?page=access&action=remove";
var popupmessage = "Error";
$.post(url, { id: id },
function(data){
return true;
});
}
});
});
但是,当我通过jQuery添加新行时,它直到刷新页面才起作用
$("<a class=\"remove\" href=\"#\"></a>").insertAfter('#accesstable tr:last');
尝试:
委派事件的优点是,它们可以处理来自子元素的事件,这些子元素将在以后添加到文档中。通过选择在附加委派事件处理程序时保证存在的元素,可以使用委派事件来避免频繁附加和删除事件处理程序
jQuery忽略动态添加内容的侦听器,请使用jQuery的 编辑:live已被弃用,请使用一个带有on的解决方案(因为没有足够的代码可以确定),您的问题是您正在绑定单击,然后稍后添加一个应该由该单击处理程序绑定的元素。这样不行。如果使用
绑定。单击,它将绑定当时存在的所有匹配元素。它不会自动绑定创建的新元素
要绑定尚未创建的元素,请在带有选择器的父元素上使用.on
。如果您的意思是新添加的锚定标记没有调用您已声明的相同单击事件,那是因为您正在使用该函数。这只会将单击事件添加到页面中当前匹配的元素中
您应该考虑使用事件,因为这将
为与当前事件匹配的所有元素附加事件处理程序
选择器,现在和将来
因此,您可以更改为:
$("a.remove").live('click', function(){ .. });
编辑
Live()已弃用,您现在应该使用该函数。。Live已弃用,请使用:
$(document).on('click', 'a.remove', function(){..});
什么不起作用?发生了什么?我不知道我有几行代码在这个脚本中列出
或者通过jQuery添加新行
意味着,所以…是的…你的选择器看起来很糟糕。尝试$('a.remove')。单击(function(){})
和$('#'+rid)。插入后面('#accesstable tr:last')
是的,我知道。。这是一个古老的密码。我会优化它,谢谢**不要使用live
,因为它已经被弃用了。我建议你看看@matt的答案:。live是不推荐使用的。请看我下面的评论。是的,它现在可以工作了,谢谢。我真的不知道它不推荐使用。。。我想我可以使用jQuery方式来进行长时间阅读,而不必重读。。不推荐使用live
,而赞成使用进行委派。
上请使用@matt的答案。好的,很高兴知道。谢谢是的,它起作用了,谢谢它不起作用。。但当我把电视改成现场直播时,一切都很好
$("a[class='remove']").live('click', function(){});
$("a.remove").live('click', function(){ .. });
$(document).on('click', 'a.remove', function(){..});