Javascript 使jQuery(document).ready(函数()在div打开时再次激发
如何使jQuery(document).ready(function())在激活覆盖div时再次启动? 我正在使用此功能隐藏a按钮:Javascript 使jQuery(document).ready(函数()在div打开时再次激发,javascript,jquery,css,Javascript,Jquery,Css,如何使jQuery(document).ready(function())在激活覆盖div时再次启动? 我正在使用此功能隐藏a按钮: jQuery(function($) { jQuery(document).ready(function() { jQuery( '.theme-actions a.button.button-primary.customize.load-customize.hide-if-no-customize' ).css("display","none"); }); })
jQuery(function($) {
jQuery(document).ready(function() {
jQuery(
'.theme-actions a.button.button-primary.customize.load-customize.hide-if-no-customize'
).css("display","none");
});
});
具有相同类的相同按钮存在于名为.theme wrap的“覆盖”中,而在.theme wrap中,a.button CSS看起来是这样的(区别在于.active theme
):
如果我在打开.theme wrap overlay的情况下重新加载页面,按钮就会消失,因为jQuery document ready函数会再次启动
我尝试将两个CSS规则添加到一个函数中
jQuery(
'.theme-actions a.button.button-primary.customize.load-customize.hide-if-no-customize,
.theme-actions .active-theme a.button.button-primary.customize.load-customize.hide-if-no-customize
').css("display","none");
但它不起作用
当覆盖打开时,如何使文档准备好再次启动
2014年10月14日更新
正如在下面的回答中指出的那样:在这个例子中不需要jQuery。我使用的CSS对于每个div都是相同的-原始的和覆盖的-所以一个简单的
{display:none}
规则添加到管理样式表就足够了。一旦覆盖被激活,运行以下命令:
jQuery('.theme-actions .active-theme a.button.button-primary.customize.load-customize.hide-if-no-customize
').css("display","none");
或者最好还是创建一个函数:
function hideElement( sel) {
$( sel ).hide(); //.hide() is equiv to .css('display', 'none');
}
然后使用第一个选择器调用DOM ready
处的函数:
$(document).ready(function() {
hideElement( 'selector-1' );
});
hideElement( 'selector-2' );
然后,当覆盖完全激活时,使用适当的选择器调用该函数:
$(document).ready(function() {
hideElement( 'selector-1' );
});
hideElement( 'selector-2' );
不要再次使用
$(document).ready()
函数,请尝试将CSS直接添加到样式表中。所使用的覆盖插件是什么?它是如何加载的注意:jQuery(函数($){
与document ready相同,因此不需要使用`jQuery(document).ready(函数(){..})在itI内部,我假设加载文档时DOM中不存在.active主题
覆盖,这就是它不起作用的原因。我不确定您是否要启动$(document).ready()
再次运行,您的代码中也有一些冗余。我们可以看到覆盖的代码吗?还有,您不只是将CSS直接添加到样式表中的原因吗?解决方案可能类似于@Matthew Brown:为什么我没有想到这一点?这是可行的;我只是测试了它。更简单、更清晰;不需要jQuery。添加您的评论作为回答,我会接受的。谢谢。你说得对;谢谢。不需要jQuery。我不得不连接到admin添加一个带有{display:none}规则的新样式表,但这很容易。谢谢,但正如上面指出的,没有必要使用jQuery;我把事情弄得太复杂了。