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-->

.spotListこれで、チェックボックスを直接または.spotListdivをクリックできるjQuery関数ができました。こんな感じで、ちゃんと動いてます…

$('.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 に答える