2012-08-27 62 views
3

我想知道是否有可能在jQuery的知道,如果一个元素被点击或hasClass()检查元素被点击或hasClass

这是我一直没有成功尝试

if($('.subCat span[data-value="all"]').hasClass('checked') || $('.subCat span[data-value="all"]').click()){ 
     alert('woohoo'); 
    } 

所以我怎么能做到这一点?我需要脚本才能在单击时执行或者它具有所需的类。

谢谢

+0

而什么情况下你要检查吗? – sabithpocker

+0

点击检查看起来很简单,但我被hasClass部分弄糊涂了。你有其他代码是否正在修改'.subCat span [data-value =“all”]'元素的类? – j08691

+0

_“检查单元是否被点击”_ - 你的意思是当用户点击所述元素时你想立即做出响应,或者你希望稍后能够测试元素是否在某个阶段被点击过? – nnnnnn

回答

2

你需要的是一个点击事件,而不是一个if语句。

$('.subCat').on("click", 'span[data-value="all"].checked', function(){ 
    alert("woohoo foobar"); 
}); 
1

要告诉我们,如果点击它,你需要添加一个事件处理程序

$(document).on("click",'.subCat span[data-value="all"]', function(){ 
    alert("I was clicked"); 
}); 

并无事件告诉你,如果它是一个必修课。如果你想检查页面何时加载,你可以做。

$(function() { 
    $('.subCat span[data-value="all"]').filter('.checked').each(function(){ 
     alert("I have a checked class at ready"); 
    }); 
}); 
1

如果需要的函数,在点击开始与选中类的元素运行以及,我建议这样的:

function doStuff() { 
    alert('woohoo'); 
} 

$(document).ready(function() { 
    // This will wire up a click event. When the matching elements are clicked, 
    // the doStuff function will run. 
    $('.subCat span[data-value="all"]').click(doStuff); 

    // This will call the doStuff function for every matched element on the 
    // document ready. 
    $.each($('.subCat span[data-value="all"].checked'), function(index, value) { 
     doStuff(); 
    }); 
});