1

我试图从 jquery 函数中排除一个类,但我似乎无法让它正常工作。我试过.not()了,但它似乎没有正常工作。

这是我的基本结构......

<div id='spotList' class='clickableSpot id_117 '>
    <div id='leftCheckboxBar'>
        <form id='checkboxForm' name='checkboxForm'>
            <input type='checkbox' class='spotCheck' unchecked id='117'/>
        </form>
    </div><!--end leftcheckboxbar-->

    <div id='leftCredits'>
        <ul class='credits'>
            <li id='agencyItem'>Agency: <span class='creditText searchAgency'>Y&R</span></li>
        </ul>
    </div><!--end leftcredits-->
</div><!--END SPOT LIST-->

现在我有一个 jQuery 函数,您可以在其中直接单击.spotList复选框或单击.spotListdiv。它看起来像这样,并且可以正常工作...

$('.spotCheck, .clickableSpot').click(function(){ 
   /*do stuff*/
});

我不希望跨度.creditText包含在该选择器中。我似乎无法弄清楚。我必须有一种方法可以排除单击该跨度并触发该功能。但是我需要 div 中的所有其他内容都是可点击的,而不是跨度内的那段文本。

有任何想法吗?

4

1 回答 1

4

您可以使用对象target的属性event

$('.spotCheck, .clickableSpot').click(function(event){ 
   if (!$(event.target).hasClass('creditText')) {
     // do something here
   }
});

您也可以使用stopPropagation以下方法:

$('.creditText').click(function(event){
    event.stopPropagation()
})

http://jsfiddle.net/4rBaM/

于 2012-10-19T16:32:52.093 回答