单击另一个单击功能多次时单击功能禁用

时间:2016-05-26 11:00:02

标签: javascript jquery google-chrome-extension

为了学习目的,只是为Chrome创建一个新的标签页。它正在做的是每次点击#refresh div时背景发生变化,然后当点击#pin时它将固定背景,以便在加载页面时它不会改变。

我遇到一个问题,如果#refresh被点击两次,我的#pin div就不会调用click函数。

所以目前发生的事情是,如果我选择#pin,图标会变为填充的心形图标(而不是未固定的空心图标)。然后,当单击刷新时,它将刷新背景并将图标更改回未固定图标。 (空心)。

这是有效的,当我点击#refresh而#pin有类“glyphicon glyphicon-heart-empty”已经然后再点击#pin什么都不做

$("#pin").click(function() {
    var storedbg = document.getElementById('background').style.backgroundImage; 
    if($(this).hasClass("glyphicon glyphicon-heart-empty")){
        $(this).removeClass("glyphicon glyphicon-heart-empty");
        $(this).addClass("glyphicon glyphicon-heart");
        chrome.storage.sync.set({'background' : storedbg});
    }
    else if ($(this).hasClass("glyphicon glyphicon-heart")){
        $(this).removeClass("glyphicon glyphicon-heart");
        $(this).addClass("glyphicon glyphicon-heart-empty");
        chrome.storage.sync.clear();
    }
});

$("#refresh").click(function() {
    $('body').css({'background-image': 'url(' + background[Math.floor((Math.random() * 26) + 0)]  + ')'}); 
    chrome.storage.sync.clear();
    $('#pin').removeClass("glyphicon glyphicon-heart");
    $('#pin').addClass("glyphicon glyphicon-heart-empty");
});

1 个答案:

答案 0 :(得分:0)

似乎我写的删除类的方式是问题!

管理以修复:

$("#refresh").click(function() {
    $('body').css({'background-image': 'url(' + background[Math.floor((Math.random() * 26) + 0)]  + ')'}); //sets random background*/
    if ($('#pin').hasClass("glyphicon glyphicon-heart")){
        $('#pin').removeClass("glyphicon glyphicon-heart");
        $('#pin').addClass("glyphicon glyphicon-heart-empty");
        chrome.storage.sync.clear();
    }
});