Ich habe eine Seite mit jQuery und Bootstrap. Alles funktioniert gut, aber aus irgendeinem Grund, wenn ich eine Funktion für ein Ereignis aufrufen, sagt die Konsole $(...).function is not a function
. Zum Beispiel, wenn ich folgendes habe:jQuery Funktionen funktionieren nicht beim Aufruf von Ereignis
<script>
$("#myModal").modal('show');
</script>
Es funktioniert gut, und das Modal zeigt, sobald Sie die Seite laden. Allerdings, wenn ich versuche, es so zu nennen:
<script>
$("#myTrigger").click(function(e){
e.preventDefault();
$("#myModal").modal('show');
});
</script>
Es funktioniert nicht, und die Konsole gibt diesen Fehler:
$(...).modal is not a function
Irgendwelche Ideen?
EDIT:
<script>
$(document).ready(function(){
$("#myModal").modal('show');
});
</script>
funktioniert gut, aber auch hier
<script>
$(document).ready(function(){
$("#myTrigger").click(function(e){
e.preventDefault();
alert("test); // Does alert
$("#myModal").modal('show'); // Doesn't work
});
});
</script>
... nicht. Da der Alarm funktioniert hat, kann man sicher sagen, dass der Trigger existiert und das click -Ereignis ordnungsgemäß aufgerufen wird. Ich benutze ein paar andere Frameworks, einen WYSIWYG-Editor und lade hoch. Könnte das ein Konfliktfehler sein? Ich habe das zuerst nicht gedacht, da beide Fälle direkt hintereinander verhandelt werden. Wenn es also einen Konflikt gab, würde es auch nicht funktionieren, oder?
UPDATE:
Sieht aus wie es ein verdammt seltsam Konflikt Problem. Ich habe folgendes versucht:
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
});
Und ich habe immer noch das gleiche Problem. Allerdings $.fn.bModal
innerhalb des Click-Ereignis zu errichten, die so:
var bootstrapModal = $.fn.modal.noConflict();
$("#myTrigger").click(function(e){
e.preventDefault();
$.fn.bModal = bootstrapModal; // established inside the click event
$("#myModal").bModal('show'); // works fine
});
Arbeitete. Ich kann immer noch nicht verstehen, warum das passiert ist und warum es unter $(document).ready()
funktioniert hat, aber nicht unter $('#trigger').click()
, vielleicht war auch die spezielle Art, wie Chrome mit Konflikten umgeht, Teil davon. Wie auch immer, das wird reichen. Danke an alle, die geholfen haben.
Das ist seltsam. Wenn das erste Codebeispiel funktioniert, gibt es keinen Grund, dass das zweite Codebeispiel auch nicht funktioniert. Können Sie ein funktionierendes Beispiel des Problems in einem Schnipsel oder einer Geige zeigen? Auch ich nehme an, Sie diese Skripte kurz vor den ''