1

jQuery 移动:

我有这个代码:

$("#header ." + className).on("click",function(event)
    {
    var localValue = localStorage.getItem(selectedInstitut);
    if (localValue === null) {
        localStorage.setItem(selectedInstitut, "favorit");
        console.log("Is NOT favorited. Doing that now")
        $(this).buttonMarkup({theme: 'b'});
        } 
    else {
        localStorage.removeItem(selectedInstitut);
        console.log("Is favorited. Unfavorited now!!")
        $(this).buttonMarkup({theme: 'a'});
        }
    });

这一次很好用。但是我在几个动态生成的页面上有相同的按钮(虽然不同的类名)。如果在一个页面上单击按钮并且我正在切换到另一个页面,它会进入 IF 并进入 ELSE 条件。如果我切换到第 3 页,它会进入 IF、ELSE 并再次进入 IF 语句......等等第 4 页。

有任何想法吗?

4

1 回答 1

1

由于您使用的是 jQuery Mobile,并且该站点会将您的整个custom.js文件(或保存代码的任何位置)放入缓存中,因此值className将在第一页上设置,然后不会再次更改,因为整个文件被添加到缓存中。

首先,确保你的所有data-role="page"元素也有一个page类似于下面的类:

<div data-role="page" class="page">

然后,在您的 JS 文件中,将您的代码放入此处理程序中:

$(document).on('pageinit', '.page', function(event) {
    // ... your code from above
});
于 2013-08-05T16:08:44.703 回答