1

クリック機能を有効にしたいdivがありますが、div内の「a」タグまたはそれが切り替えているdivはありません。

HTML

 <div class='row client-outstandings'>
  <div class='twelve columns'>
    <div class='panel'>
      <h3><a href="{% url clients.views.view_client c.client.id %}" target="_blank">{{ c.client }}</a> - {{ c.total|currency }}</h3>
      <div class='client-outstandings-details' style='display:none;'><a href="">Blah blah</a> </div>
    </div>
  </div>
</div>

コード:

$(function () {

    $('.client-outstandings').live('click', function () {
        $(this).find('.client-outstandings-details').toggle('fade');
    });

});

「.client-oustandings」divまたは「.client-outstandings-details」内の「a」タグがトグルをトリガーしないようにしようとしています。

何か案は?

4

3 に答える 3

3

liveonメソッドは非推奨になりました。代わりにメソッドを使用できます。

$(document).on('click', '.client-outstandings', function () {

stopPropagationイベントのバブリングを防ぐには、次の方法を使用できます。

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

onメソッドを使用してイベントを委任するには、静的な親要素(より良い)またはドキュメントオブジェクトを使用する必要があることに注意してください。

于 2012-11-14T04:34:58.953 に答える
0

あなたはこれを試すことができます

$('.client-outstandings').live('click', function () {
    $(this).find('.client-outstandings-details').toggle('fade');
});

$('.client-outstandings a').live('click', function(e){
    e.stopPropagation();
    return true;
});

デモ

ただし、を使用することをお勧めしますon。コードの使用on

$(document).on('click', '.client-outstandings', function () {
    $(this).find('.client-outstandings-details').toggle('fade');
});

$('.client-outstandings').on('click', 'a', function(e){
    e.stopPropagation();
    return true;
});

デモ

于 2012-11-14T04:32:59.607 に答える
0

私はあなたが以下のようなものを探していると思います:

HTML

<div class='row client-outstandings'>
  <div class='twelve columns'>
    <div class='panel'>
      <h3><a href="{% url clients.views.view_client c.client.id %}" target="_blank">{{ c.client }}</a> - {{ c.total|currency }}</h3>
      <a href="" class="outstandingsAnchor">Blah blah</a>
    </div>
  </div>
</div>

jQuery

$(function () {
    $(document).on('click', 'a.outstandingsAnchor', toggle(function() {(
       $(this).wrap('<div class="client-outstandings-details" />');
    }, function() {
       $(this).unwrap();
   )};
});
于 2012-11-14T04:51:54.983 に答える