불행히도 부트 스트랩 소스가 변경되었지만이를 수행하는 방법을 찾았습니다. 실제 방법 호출을 수행하는 코드의 단편이있다 :
$.fn.modal = function (option) {
return this.each(function() {
var $this = $(this)
, data = $this.data('modal')
, options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
if (!data) $this.data('modal', (data = new Modal(this, options)))
if (typeof option == 'string') data[option]()
else if (options.show) data.show()
})
}
이 변화하도록, 제 7 라인합니다 (source code 라인 (206))는 원래 둘러싸 함수에 전달 된 임의의 추가 파라미터를 전달하도록 수정되어야 . 또한 원래 인수는 jQuery의 .each()
함수 반복마다 주어져야합니다. 여기에 작업 코드입니다 :
$.fn.modal = function (option) {
return this.each(function() {
var $this = $(this)
, data = $this.data('modal')
, options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
if (!data) $this.data('modal', (data = new Modal(this, options)))
if (typeof option == 'string') data[option].apply($this.data('modal'), Array.prototype.slice.call(arguments, 1)); // pass the parameters on
else if (options.show) data.show()
}, arguments) // execute each iteration with the original parameters
}
난 아직도 이러한 변화는 바람직하지 않은 부작용을 만들지 않습니다 확인하기 위해 실험을하고 있습니다 만, 지금까지, 모든 것이 예상대로 작동합니다. 더 우아한 해결책은 환영받을 것이다.