2014-11-21 1 views
0
내가 부트 스트랩의 modal.js을 읽고있다

:부트 스트랩 등의 조각이 모달 옵션

$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { 
    var $this = $(this) 
    var href = $this.attr('href') 
    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 
    var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) 

    if ($this.is('a')) e.preventDefault() 

    $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') 
     }) 
    }) 
    Plugin.call($target, option, this) 
    }) 

}(jQuery); 

사람이 줄 var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) 무슨 뜻 알고, 특히이 부분 remote: !/#/.test(href) && href?

답변

1
  • /#/은 해시를 검색하는 정규 표현식입니다.
  • /#/.test(href)은 href에 해시가 포함 된 경우 true을 반환합니다.
  • !/#/.test(href) 결과가 반전됩니다. href에 해시가 포함되어 있지 않으면 true입니다.
  • !/#/.test(href) && href은 부울 AND 해킹입니다. 왼쪽이 true이면 href을 반환합니다. 그렇지 않으면 false을 반환합니다. href 해시가 포함되어있는 경우

그래서, 다음은 출력 다음 href이 해시를 포함하지 않는 경우

{ remote: false } 

, 그것은 출력 :

{ remote: href }