jQuery Fehler nur im IE (8) - "Objekt nicht unterstützt..."
Habe ich dieses code-snippet (AJAX) in jQuery.
$.get('someScript.php?lat=' + clickedLatLng.lat() + '&lon=' + clickedLatLng.lng() + '&value=5', doSomething);
- Und dies ist eine Funktion (wird durch ein Symbol auf Google Maps und ändert einige Werte in input-Feldern).
function doSomething(data) {
data = data.trim();
data = data.split(",");
var stopName = data[0];
var stopLat = data[1];
var stopLon = data[2];
$("#start").val(stopName);
if (startMarker == null) {
startMarker = new google.maps.Marker({
position: new google.maps.LatLng(stopLat,stopLon),
map: map,
zIndex: 2,
title: stopName,
icon: startImage
});
} else {
startMarker.setPosition(new google.maps.LatLng(stopLat,stopLon));
}
}
Aber es funktioniert in allen Browsern außer dem IE, in meinem Fall IE 8. Ich habe nicht testen Sie es im IE 6/7. Es erscheint dieser Fehler...
Schaute ich in jquery.js und dies ist die Funktion, wo es bricht...
//resolve with given context and args
resolveWith: function( context, args ) {
if ( !cancelled && !fired && !firing ) {
firing = 1;
try {
while( callbacks[ 0 ] ) {
callbacks.shift().apply( context, args );
}
}
finally {
fired = [ context, args ];
firing = 0;
}
}
return this;
},
eigentlich
callbacks.shift().apply( context, args );
Kann jemand helfen? Wo ist das problem? Die gleiche Sache mit jquery-1.4.4.js
EDIT: Dies ist meine größeren code...
//Set some events on the context menu links
contextMenu.find('a').click( function()
{
//fade out the menu
contextMenu.fadeOut(75);
//The link's href minus the #
var action = $(this).attr('href').substr(1);
switch (action) {
case 'startMenu':
$.get('someScript.php?lat=' + clickedLatLng.lat() + '&lon=' + clickedLatLng.lng() + '&radijus=5', doSomethingWithData1);
break;
case 'stopMenu':
$.get('someScript.php?lat=' + clickedLatLng.lat() + '&lon=' + clickedLatLng.lng() + '&radijus=5', doSomethingWithData2);
break;
}
return false;
});
Wenn der Benutzer klickt auf ein Element innerhalb Kontextmenü auf Google Maps, dann tun "doSomethingWithData1" und "doSomethingWithData2". Dies ist auch der code für die Kontextmenü
//Hover events for effect
contextMenu.find('a').hover( function() {
$(this).parent().addClass('hover');
}, function() {
$(this).parent().removeClass('hover');
});
und diese für AJAX
$.ajaxSetup ({
cache: false
});
Dies ist, wie ich meine jQuery scripts.
<!-- Google Maps -->
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<!-- Load Javascript /jQuery -->
<script type="text/javascript" src="js/jquery-1.5.js"></script>
<script type="text/javascript" src="js/jquery.ui.core.js"></script>
<script type="text/javascript" src="js/jquery.ui.position.js"></script>
<script type="text/javascript" src="js/jquery.ui.widget.js"></script>
<script type="text/javascript" src="js/jquery.ui.autocomplete.js"></script>
<link rel="stylesheet" href="js/jquery.ptTimeSelect.css" type="text/css" media="all" />
<script type="text/javascript" src="js/jqtransformplugin/jquery.jqtransform.js"></script>
<link rel="stylesheet" href="js/jqtransformplugin/jqtransform.css" type="text/css" media="all" />
<script type="text/javascript" src="js/jquery.ui.datepicker.js"></script>
- Wenn Sie die Fehlermeldung erhalten, in der
jquery.js
Datei, von 99,9999% der Zeit, es ist ein problem mit Ihrer - code. Blick in Sie. - Können Sie bieten, wie Sie verweisen jQuery.js in Ihren HTML-markup?
- Auch, erhalten Sie den Fehler beim laden der Seite??...oder in der callback-Funktion? Ist Ihre Rückruf-eigentlich immer genannt?
- Ich würde empfehlen, einen Haltepunkt auf die erste Zeile in der
setPosition
callback-und single-stepping durch. Sehen Sie sich die resultierendendata
und stellen Sie sicher, dass es Sinn macht. Finden Sie heraus, welche Zeile der code ist eigentlich nicht (die jQuery-Linie haben Sie zitiert nur den Aufruf Ihrer callback; viel wahrscheinlicher ist, dass der Fehler in der callback). - Ich fügte hinzu, ein paar mehr Infos.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das war es =/- .trim() in JavaScript funktioniert nicht im IE
Lösung - fügen Sie diese, bevor Sie Sie verwenden .trim-Funktion.
Das problem ist, dass die variable Rückrufe nicht ein array irgendwie in diesem Fall. daher Rückrufe.shift() fehlschlägt
Als aus dem Grund, Nenn mich paranoid, aber versuchen Sie, Ihren code auf diese Weise