我有一個使用jQuery和Bootstrap的頁面。一切工作正常,但由於某種原因,當我調用一個事件的功能控制檯說$(...).function is not a function
。例如,如果我有這個:jQuery函數在事件上調用時不起作用
<script>
$("#myModal").modal('show');
</script>
它工作正常,並且只要您加載頁面,模式就會顯示。但是,如果我嘗試調用它像這樣:
<script>
$("#myTrigger").click(function(e){
e.preventDefault();
$("#myModal").modal('show');
});
</script>
它不工作和控制檯,這個錯誤:
$(...).modal is not a function
任何想法?
編輯:
<script>
$(document).ready(function(){
$("#myModal").modal('show');
});
</script>
工作正常,但同樣,
<script>
$(document).ready(function(){
$("#myTrigger").click(function(e){
e.preventDefault();
alert("test); // Does alert
$("#myModal").modal('show'); // Doesn't work
});
});
</script>
...沒有。由於警報起作用,所以可以肯定地說觸發器確實存在並且點擊事件被正確調用。我正在使用其他一些框架,一個所見即所得的編輯器和uploadify。這可能是衝突錯誤嗎?起初我並不這麼認爲,因爲這兩起案件都是一個接一個地審理的,所以如果發生衝突就不會有效,對嗎?
UPDATE:
看起來就像是一個相當不錯的怪異的衝突問題。我嘗試了以下內容:
var bootstrapModal = $.fn.modal.noConflict();
$.fn.bModal = bootstrapModal; // established outside the click event
$("#myTrigger").click(function(e){
e.preventDefault();
$("#myModal").bModal('show'); // doesn't work
});
而且我仍然遇到同樣的問題。但是,在點擊事件內部建立$.fn.bModal
,因爲如此:
var bootstrapModal = $.fn.modal.noConflict();
$("#myTrigger").click(function(e){
e.preventDefault();
$.fn.bModal = bootstrapModal; // established inside the click event
$("#myModal").bModal('show'); // works fine
});
工作。仍然無法圍繞爲什麼會發生這種情況,以及爲什麼它在$(document).ready()
上工作,但不在$('#trigger').click()
上,也許Chrome處理衝突的具體方式也是其中的一部分。無論如何,這將做到。感謝所有幫助過我的人。
這很奇怪。如果第一個代碼示例有效,那麼沒有理由第二個代碼不會。你能在一個片段或小提琴中展示一個問題的工作示例嗎?另外,我假設你在'