好吧,这是Stackoverflow的长期用户,第一次提问.请记住,我主要是一个CSS/HTML人,只知道jQuery的基础,所以要温柔!
为什么哦,为什么这个if语句仍在触发,即使目标元素在HTML中不可用?请参阅此示例(查看控制台日志),它.cta > .btn也会在页面上没有时发生.要查找的部分是:
if ( $('.page-template') ) {
}
Run Code Online (Sandbox Code Playgroud)
这是工作版本供参考.这可能不会太慢加载,但我想限制在后台工作的东西,特别是window resize因为我听说它是一种资源匮乏(使用Paul Irish脚本).
如果它像PHP一样,它应该不会发射吗?
UPDATE
所以我一直偶然发现is()哪个与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');
}
);
});
Run Code Online (Sandbox Code Playgroud)
只有.nav-main .active.dropdown可用才会开火.所以我想(未经测试)以下也可以:
if ( $('something').is() ) { ... }
Run Code Online (Sandbox Code Playgroud)
更新#02
您也可以使用感叹号指定"不是" !,如下所示:
if ( !$('something') ) { ... }
Run Code Online (Sandbox Code Playgroud)