0

我有一个 jQuery Mobile 应用程序,它通过 ajax 加载页面,例如 page1.html、page2.html 等

在 page1.html 我有一个按钮:

<a href="page2.html" data-role="button" class="submit">Submit</a>

在 page2.html 我也有一个按钮

 <a href="page3.html" data-role="button" class="submit">Submit</a>

我在正文中的每个页面上都引用了一个脚本文件(script.js),其中包含以下代码:

$(document).on('pagechange', function(){
    console.log('new page');
    $('.submit').on('click', function(){
      console.log($('this'));
    });
}

每个页面的“新页面”都被写入控制台,但点击仅在单个页面上注册(如果我刷新页面,它仅在该页面上有效)

关于如何在每个页面上触发点击的任何想法?

4

2 回答 2

0

使用 的选择器参数.on(),在这种情况下,您只需要绑定一次事件,因此请在document.ready()处理程序中进行,如下所示:

$(document).ready(function() {
    $(document).on('click', '.submit', function(){
      console.log($('this'));
    });
});
于 2012-10-31T08:43:24.470 回答
0

在 jquery mobile 中,您应该将事件pageinit用作传统的onload. 下面的代码应该可以解决问题。

$(document).on('pageinit', function(){
    console.log('new page');
    $('.submit').on('click', function(){
      console.log($('this'));
    });
}
于 2012-10-31T08:44:22.300 回答