我有以下内容:
$(document).on("pageinit", function (event) {
alert("pageinit called");
$('#logout').bind('click', function() {alert("clicked!");});
});
页面第一次运行时,您会收到一个名为'pageinit'的警报。单击id为#logout的元素会触发警报'clicked!'。如果我点击此页面中的任何其他链接,我仍然会收到'pageinit called'警报(我得到它多次,显然对于我之前导航过的每个页面),但随后#logout的处理程序消失了,从未重新开始-established。
有谁能告诉我如何让#logout的处理程序保留?我试过了:
$('#logout').die('click').live('click', function() {alert("clicked!");});
无济于事。
答案 0 :(得分:0)
在仔细观察之后(以及Omar的评论),这个问题是由jquery移动寻呼系统AND 尝试通过id附加到'single'元素的组合引起的。
在我的情况下,每次单击页面中的链接时,它都会在jqm分页系统中加载一个单独的页面,每个页面都包含自己的#logout元素。我的解决方案是查询所有按钮并为每个按钮附加处理程序:
var buttons = $("*[id='logout']");
buttons.each(function() {
// handle click or whatever here
});
而不是:
var button = $('#logout'); // Only hooks into the first #logout element