为了学习目的,只是为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");
});
答案 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();
}
});