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 中使用“on”点击,但在“click”之后从不使用点符号,从不使用 []

感谢您在弄清楚发生了什么方面提供的任何帮助。

4

1 回答 1

3

点表示法是一个命名空间。

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

例如,它允许您轻松地仅从一个命名空间中删除所有事件侦听器。

jQuery文档


第二个参数是data-toggle属性等于的所有元素的选择器collapseW3C 文档jQuery 文档

这是它的使用示例

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

如果我没记错的话,这意味着任何指向一个元素的点击事件都会被这个监听器拦截,不管这个元素是不是在绑定时创建的。并且回调将被调用。.child.childsomeFunction

jQuery文档

于 2012-06-25T20:14:49.030 回答