总是阻止元素jQuery

时间:2014-10-21 10:42:11

标签: javascript jquery html css facebook

我创建了Safari扩展程序来阻止Facebook中的某些元素,我想知道是否可以让它一直阻止。例如,它会在您加载Facebook时阻止元素,但是当您单击左上角的Facebook徽标时,所有元素都会返回,您必须手动重新加载页面才能再次阻止它们。因此,当您点击没有重新加载页面的内容时,基本上所有元素都会返回。

感谢。

这是我的代码。

jQuery(document).ready(function(){ 
    $("#content").find("#sideNav").find("#listsNav").css( "display", "none" );
});

2 个答案:

答案 0 :(得分:1)

这完全取决于当你点击徽标时facebook实际上做了什么。

如果它发出了AJAX请求,那么您可以监听该事件并重新隐藏元素。例如:

$( document ).ajaxComplete(function() {
    $("#content").find("#sideNav").find("#listsNav").css( "display", "none" );
});

如果它只是运行一些本地javascript,那么你可以听取click事件,然后再次运行你的代码。例如,假设徽标的ID为#logo ...

$("#logo").click(function(){
    $("#content").find("#sideNav").find("#listsNav").css( "display", "none" );
});

此外,正如Satpal所建议的那样,ID对于页面来说是唯一的,因此您不需要以困难的方式找到它们,只需直接引用它们:

$("#listsNav").hide();

答案 1 :(得分:0)

jQuery(document).ready();仅在DOM准备好时调用。

facebook正在使用AJAX调用来获取新内容。您还必须将侦听器绑定到监视更改的DOM。

这可能会对您有所帮助:Is there a JavaScript/jQuery DOM change listener?