jQuery脚本只能运行一次
我没有什么问题,脚本只工作一次,之后我需要刷新页面来删除喜欢的文章(脚本是为了那个)。
$("a.fav_no").on('click', function () { var id = $(this).attr("id"); $(this).load("{$homepage}/user_action.php?action=fav&id="+ id +"").addClass("fav_yes"); }); $("a.fav_yes").on('click', function () { var id = $(this).attr("id"); $(this).load("{$homepage}/user_action.php?action=remove_fav&id="+ id +"").removeClass("fav_yes"); });
在控制台中,我在点击后多次获得文章(div)的id(因此它计数),但它没有做任何事情。 所以我现在可以只是最喜欢的,从我喜欢的我需要刷新的删除然后再次点击链接从collections夹中删除。
谢谢!
如果使用带有3个args的.on()重载并在文档上调用。 然后,当UI元素来去时,事件将保持连接状态。 无需每次都重新添加它们。
$(document).on(“click”,“a.offsite”,function(){…..
请在此处查看.on()的说明。 http://api.jquery.com/live/
如果要替换负责捕获事件的html,则应该再次初始化这些事件捕获器。
像这样:
initEvents() { $("a.fav_no").on('click', function () { var id = $(this).attr("id"); $(this).load("{$homepage}/user_action.php?action=fav&id="+ id +"").addClass("fav_yes"); }); $("a.fav_yes").on('click', function () { var id = $(this).attr("id"); $(this).load("{$homepage}/user_action.php?action=remove_fav&id="+ id +"").removeClass("fav_yes"); }); }
然后你在页面加载时调用initEvents,而不是在替换html时调用。