0

私は一連のリンクを持っています:

<div id="dd" class="mywrap-dropdown-2" tabindex="2">Select
    <ul class="dropdowner" id="coll-filter">
        <li><a href="#">Black</a></li>
        <li><a href="#">White</li>
        <li><a href="#">Blue</li>
    </ul>
</div> 

リンク「白」をクリックすると、リンク「黒」と「青」はクリックできなくなります。

これは私が持っているものですが、動作しません:

$( '.dropdowner' ).on( 'click', 'li', function( e ) {
    e.preventDefault();  
    $(".dropdowner li a").not(this).removeAttr("href")
});
4

2 に答える 2

2

マークアップが無効です。閉じられていないアンカーリンクがあります。

<li><a href="#">White  </li>
<li><a href="#">Blue   </li>

コードでアンカーリンクではなく要素thisを参照している場合は、li要素ではなくアンカーリンクを選択する必要があることに注意してくださいli

$( '.dropdowner' ).on( 'click', 'a', function( e ) {

また:

$(".dropdowner li").not(this).find('a').removeAttr("href")
于 2012-10-15T15:19:42.510 に答える
0

unbind()そのクラスに関連付けられているすべてのクリックイベントのバインドを解除します

 $('.dropdowner').on('click', 'a', function(e) {
    e.preventDefault();
    if ($(this).text().indexOf('White') > -1) {
        alert('Clicked Link with White..')
        $('.dropdowner a').not(this).unbind();
    } else {
        alert('Other Links Cliked');
    }
});​

これを試してください..これにより、黒のリンクがクリックされたときに他のリンクのクリックイベントが削除されます。

フィドルを確認してください

于 2012-10-15T15:18:42.723 に答える