Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 删除一个类然后重用它_Jquery_Greasemonkey - Fatal编程技术网

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('\'','&#39;') + "' class='blacklist' value='&#x2717;' /><br/><input type='button' style='background-color:black;border:none;cursor:pointer;margin-top:4px;color:green;font-weight:bold;' title='" + imgAlt.replace('\'','&#39;') + "' class='whitelist' value='&#x2713;' /></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;
} );