0

Twitter Bootstrap から取得した次のコードで何が起こっているのかを誰かが説明できることを望んでいました...

$(function () {
    $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) {
      var $this = $(this), href
        , target = $this.attr('data-target')
          || e.preventDefault()
          || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
        , option = $(target).data('collapse') ? 'toggle' : $this.data()
      $(target).collapse(option)
    })
  })

私はjqueryで「オン」クリックを使用しますが、「クリック」の後にドット表記を使用したり、[]を使用したりすることはありません

何が起こっているのかを理解するのに助けてくれてありがとう。

4

1 に答える 1

3

ドット表記は名前空間です。

$('#myElt').on('click.mynamespace',someFunction); // listening
$('#myElt').off('click.mynamespace'); // not listening any more

たとえば、1 つの名前空間だけからすべてのイベント リスナーを簡単に削除できます。

jQueryドキュメント


2 番目の引数は、data-toggle属性が と等しいすべての要素のセレクターですcollapseW3C ドキュメント& jQuery ドキュメント

これはその使用例です

$('#myContainer').on('click','.child',someFunction);

私が間違っていなければ、バインディング時に要素が作成されたかどうかに関係なく、要素へのクリック イベントはすべてこのリスナーによって傍受されること意味します。そして、コールバックが呼び出されます。.child.childsomeFunction

jQueryドキュメント

于 2012-06-25T20:14:49.030 に答える