![](/img/trans.png)
[英]jQuery script works only once, then TypeError: $(…) is not a function
[英]jQuery script works only once
我没什么问题,脚本只能工作一次,之后我需要刷新页面以删除喜欢的文章(脚本就是针对此)。
$("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,但它没有任何作用。 因此,我现在可以只收藏,要从收藏中删除,我需要刷新,然后再次单击链接从收藏中删除。
谢谢!
如果要替换负责捕获事件的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时调用initEvents。
如果使用.on()重载,则需要3个args并在文档上调用。 然后,事件将随着UI元素的来来去去。 无需每次都重新添加它们。
$(document).on(“ click”,“ a.offsite”,function(){.....
请参阅此处的.on()描述。 http://api.jquery.com/live/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.