3

我正在将一个普通网站转移到 jQuery 移动版。我有一些事件绑定,以及其他特定于页面的调整:

$('.roulette-img').css({
});

$('.shuffle-img').each(function(){
});

$('.button').bind('mousedown', function(){
});

$('.spin-btn').bind('mousedown', function(){
    $(document).bind('mouseup', function(){
    });
})

$(window).resize(function(){
});

现在某些页面不能正常工作(通过不触发这些事件)。我知道这是因为 jQuery 的 ajax 导航,该脚本仅在加载第一页时加载一次,因此通过 AJAX 加载的所有后续内容都不会绑定到事件。

哪种方式最好绕过它?

4

2 回答 2

1

首先不要使用绑定,它已被弃用并从 jQuery 版本 1.9 + 中删除。改为使用。这是一个例子:

$('#buttonID').on('click', function(){       

});

此外,如果您想在某个页面中执行某些操作,则需要在 jQuery Mobile 页面事件中执行,如下所示:

$(document).on('pagebeforeshow', '#index', function(){       

});

我给你做了一个工作示例:http: //jsfiddle.net/Gajotres/8hKe2/

在这里,您可以看到使用页面事件为特定页面执行代码的样子。

您想知道的所有内容都可以在此答案/文章中找到:jQuery Mobile:文档就绪与页面事件

于 2013-04-05T09:41:57.013 回答
0

如果您希望处理程序在加载时绑定到新页面,则可以使用pageinit事件并将选择器限制为当前初始化的页面:

$(document).on("pageinit", function(e) {
    $(".button", e.target).on("mousedown", function() {
        // ...
    });

    $(".spin-btn", e.target).on("mousedown", function() {
        // ...
    });
});
于 2013-04-05T09:49:41.930 回答