$(document).on("pagebeforeshow", function(event) {
$("#mybtn").on("click", function(e) {
$.mobile.showPageLoadingMsg();
$.mobile.changePage("twitter.html", {
reloadPage: false, changeHash: true,
});
$('#mybtn').unbind('');
});
});
你能否告诉我为什么Unbind在Jquery mobile中很重要?请告诉我解除事件的最佳方法。我使用了以下方式来绑定和取消绑定事件。没关系
答案 0 :(得分:0)
看一下这个例子:NO UNBIND USED
<强> CODE 强>
$("#page2").on("pagebeforeshow", function(){
$("#testBtn").on("click", function(){
alert("Hi!");
});
});
如果从第1页转到第2页,然后单击名为Click me
的按钮,您将看到警告“嗨!”显示得当。该活动在pagebeforeshow
绑定,直到现在一切正常。
现在返回第1页,然后再次加载第2页,再次点击Click me
按钮..您将看到警报显示2次!这是错的。这就是为什么在再次绑定事件之前需要unbind
事件。
基本上,每次加载page2时,都会将新事件绑定到按钮..因此,如果您加载10次该页面,则会有10个绑定到该按钮的事件,一旦单击该按钮就会触发。
这是unbind
的一个工作小提琴(取消绑定事件,我使用了off()
):UNBIND USED
<强> CODE 强>
$("#page2").on("pagebeforeshow", function(){
$("#testBtn").off("click").on("click", function(){
alert("Hi!");
});
});
查看here以了解我使用off()
代替unbind()
的原因,以及here如果您想了解off()
如何运作{ p>
我希望这有助于澄清你的疑虑..