jQuery:$(element).on(“click”,...创建多个点击事件?

时间:2013-08-05 15:55:09

标签: jquery mobile onclick

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页。

有什么想法吗?

1 个答案:

答案 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
});