为什么默认预防检查modal.js中的div?

时间:2015-03-14 11:49:45

标签: javascript jquery twitter-bootstrap

嘿伙计们正在浏览modal.js的来源,并遇到了以下几行代码。

$target.one('show.bs.modal', function (showEvent) {
  if (showEvent.isDefaultPrevented())  return // only register focus restorer if modal will actually get shown
  $target.one('hidden.bs.modal', function () {
    $this.is(':visible') && $this.trigger('focus')
  })
})

$ target实际上只是以下内容:

<div aria-hidden="false" aria-labelledby="myModalLabel" role="dialog" tabindex="-1" id="myModal" class="modal fade in" style="display: block;">

我在上面的代码中无法理解的是检查isDefaultPrevented的原因 正在div ??

上执行

即。以下代码行:

if (showEvent.isDefaultPrevented())  return
有人可以解释一下吗?

我的难度也可以在git上找到:Line 331

谢谢。

2 个答案:

答案 0 :(得分:0)

我看不出你认为$target DIV得到任何检查的地方。实际上isDefaultPrevented是一个标准jquery function,它指示用户是否试图拦截show事件,从而影响默认事件处理。并且为事件对象调用此函数,而不是$target

答案 1 :(得分:0)

'show.bs.modal'是在div上触发的事件名称。这段代码在那个div上的事件上监听。

现在,您粘贴的代码点:

如果另一段代码已经捕获了事件并在事件对象上调用了preventDefault(),那么,当执行这段代码时,它将使用isDefaultPrevented知道并返回而不做任何事情。

它可以阻止该事件的默认行为,例如,可以阻止click事件的默认行为。