JQuery mobile - click事件仅在当前页面上触发

时间:2013-10-15 00:14:34

标签: jquery-mobile

我有以下内容:

$(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!");});

无济于事。

1 个答案:

答案 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