好的,Stackoverflow 的老用户,第一次提问。请记住,我主要是一个 CSS/HTML 人,只知道 jQuery 基础知识,所以要温柔!
为什么哦为什么这个if
语句仍然触发,即使目标元素在 HTML 中不可用?请参阅此示例(查看控制台日志),当.cta > .btn
页面上也没有时也会发生这种情况。要查找的部分是:
if ( $('.page-template') ) {
}
这是供参考的工作版本。无论如何,这可能不会太慢加载,但我想限制在后台工作的内容,特别是window resize
因为我听说它是一个资源猪(使用 Paul Irish 脚本)。
如果它像 PHP 一样,它根本不应该触发吗?
更新
因此,我偶然发现is()
which 与语句执行相同的工作,if
但仅在类存在时才返回对象。所以下面作为例子:
$(function() {
$('.nav-main .active.dropdown').is(
function(){
$(this).children('.dropdown-menu').removeClass('visuallyhidden')
.parents('#menu-primary-navigation').addClass('dropdown-active');
console.log('is fired');
}
);
});
仅在.nav-main .active.dropdown
可用时触发。所以我想(未经测试)以下也可以工作:
if ( $('something').is() ) { ... }
更新#02
您还可以使用感叹号指定“不是” !
,如下所示:
if ( !$('something') ) { ... }