我有以下click
事件:
$('#planung').click(function(){
if($current != $('#planungtext')){
console.log($current);
console.log($('#planungtext'));
$($current).removeClass('active');
setTimeout(function(){$('#planungtext').addClass('active')}, 1000);
$current = $('#planungtext');
}
});
我使用日志来查看变量和'#planungtext'
元素的内容。它们是完全一样的,但是if函数无法按预期运行,因为它仍在运行。
第一次单击该元素之前未设置$ current。
我在这里做错什么了吗?
这两个jQuery对象指向相同的DOM元素,但是它们是不同的数组(jQuery对象本质上只是幕后的数组,带有多余的东西)。
使用jQuery is
http://api.jquery.com/is/测试相同的选择器是否与它们匹配:
if(!$current.is('#planungtext')){
“手动”执行此检查的最快方法是:
if ($current[0].id !== '#planungtext'){
在评论中提到$ current是一个jQuery变量(良好的命名标准),但undefined
在最初的情况下,几乎所有发布的解决方案都将崩溃。您需要将$ current初始化为一个空的jQuery对象,以提供最一致的行为(绝不能将jQuery对象定义为那样使用,否则您需要重新包装它。例如$($current)
,我不建议将其作为解决方案未初始化的jQuery变量):
var $current = $(); // $() returns an empty jQuery object
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句