У меня есть страница с использованием 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
Любые идеи?
EDIT:
<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>
... не делает. Так как предупреждение работает, можно с уверенностью сказать, что триггер существует, и событие click вызывается должным образом. Я использую пару других фреймворков, редактор WYSIWYG и загружаю. Это может быть ошибка конфликта? Сначала я так не думал, потому что оба случая подвергаются судебному разбирательству прямо друг за другом, поэтому, если бы был конфликт, это тоже не сработало бы, верно?
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 с конфликтами также был его частью. В любом случае, это будет сделано. Спасибо всем, кто помог.
Это странно. Если первый пример кода работает, нет причин, по которым второй не будет. Не могли бы вы показать рабочий пример проблемы в фрагменте или скрипке? Кроме того, я предполагаю, что вы выполняете эти сценарии непосредственно перед '