jQuery Mobile:
我有这段代码:
$("#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页。
有什么想法吗?
答案 0 :(得分: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
});