Jquery 删除一个类然后重用它
首先,这是一个油腻的脚本。我无法从开发人员的角度访问该站点 我在Jquery 删除一个类然后重用它,jquery,greasemonkey,Jquery,Greasemonkey,首先,这是一个油腻的脚本。我无法从开发人员的角度访问该站点 我在标签中添加了两个按钮。我正专注于黑名单方面。 刷新功能最初运行以设置按钮。当它运行时,页面上还没有黑名单类。单击黑名单按钮后,.click第一次激发。在.click结束时,我运行另一个刷新。在第二次单击尝试时,.click不会触发。我想知道.remove运行后.click是否不被激活。那么未来的黑名单按钮就没有了。点击与它们有一些关联 以前,我不需要刷新方法中的.remove方法,随后的单击也可以正常工作 $('.black
标签中添加了两个按钮。我正专注于黑名单方面。
刷新功能最初运行以设置按钮。当它运行时,页面上还没有黑名单类。单击黑名单按钮后,.click第一次激发。在.click结束时,我运行另一个刷新。在第二次单击尝试时,.click不会触发。我想知道.remove运行后.click是否不被激活。那么未来的黑名单按钮就没有了。点击与它们有一些关联
以前,我不需要刷新方法中的.remove方法,随后的单击也可以正常工作
$('.blacklist').click (function(e)
{
e.preventDefault();
var data = $(this).attr('title');
var blacklist = gmGet("blacklist");
var blacklistArray = blacklist.split('|');
blacklistArray.push(data);
var newlist = blacklistArray.join('|');
setTimeout(GM_setValue("blacklist",newlist),0);
Refresh();
return false;
});
function Refresh()
{
var Blist = GM_getValue("blacklist", "");
var blacklistArray = Blist.split('|');
var Wlist = GM_getValue("whitelist", "");
var whitelistArray = Wlist.split('|');
$('.blacklist').remove();
$('.whitelist').remove();
$(jQp.each(function()
{
var temp = $(this);
var imgAlt = temp.find('img').attr('alt');
//if blacklist array contains imgAlt then jQp.hide!
if (imgAlt != undefined && imgAlt.substr(0, 6) != "Lineup" && imgAlt != "")
{
if (jQuery.inArray(imgAlt,blacklistArray) >= 0) temp.hide();
}
if (imgAlt != undefined && imgAlt.substr(0, 6) != "Lineup" && (jQuery.inArray(imgAlt,whitelistArray) < 0))
{
temp.append("<span style='vertical-align: top;display:inline-block;text-align:left;' class='mymenu'><input type='button' style='background-color:black;border:none;cursor:pointer;color:red;font-weight:bold;' title='" + imgAlt.replace('\'',''') + "' class='blacklist' value='✗' /><br/><input type='button' style='background-color:black;border:none;cursor:pointer;margin-top:4px;color:green;font-weight:bold;' title='" + imgAlt.replace('\'',''') + "' class='whitelist' value='✓' /></span>");
}
}));
}
$('.blacklist')。单击(函数(e)
{
e、 预防默认值();
var data=$(this.attr('title');
var blacklist=gmGet(“黑名单”);
var blacklistary=blacklist.split(“|”);
blacklistary.push(数据);
var newlist=blacklistArray.join(“|”);
设置超时(GM_设置值(“黑名单”,新名单),0);
刷新();
返回false;
});
函数刷新()
{
var Blist=GM_getValue(“黑名单”和“);
var blacklistary=Blist.split(“|”);
var Wlist=GM_getValue(“白名单”、“白名单”);
var whitelistArray=Wlist.split(“|”);
$('.blacklist').remove();
$('.whitelist').remove();
$(jQp.each(函数()
{
var temp=$(此);
var imgAlt=temp.find('img').attr('alt');
//如果黑名单数组包含imgAlt,那么jQp.hide!
如果(imgAlt!=未定义和&imgAlt.substr(0,6)!=“排列”和&imgAlt!=“”)
{
if(jQuery.inArray(imgAlt,blacklistary)>=0)temp.hide();
}
if(imgAlt!=未定义和&imgAlt.substr(0,6)!=“Lineup”&&(jQuery.inArray(imgAlt,whitelistary)<0))
{
临时附加(“”);
}
}));
}
该代码不会删除任何类;它正在删除具有类黑名单
或类白名单
的节点。这还会删除这些节点具有的任何单击处理程序
要使用其中一个类获取所有当前和未来节点,请使用(需要jQuery 1.7或更高版本)
单击功能变为:
$(document.body).on ("click", ".blacklist", function (e) {
e.preventDefault ();
var data = $(this).attr ('title');
//### `gmGet` LOOKS LIKE A POSSIBLE ERROR.
var blacklist = gmGet ("blacklist");
var blacklistArray = blacklist.split ('|');
blacklistArray.push (data);
var newlist = blacklistArray.join ('|');
setTimeout (GM_setValue ("blacklist",newlist),0);
Refresh ();
return false;
} );