Почему я получаю следующую ошибку в сценарии jQuery только тогда, когда она работает на IE9 64Bit? Весь сайт хорошо работает во всех других браузерах. Это единственный браузер, который выбрал эту ошибку.
Моя версия jQuery в 1.7.2
Ошибка:
SCRIPT5002: Function expected
jq.js, line 430 character 6
Это строка 430 Character 6
$('#'+type).insertAfter(self.parent()).show();
+type
на самом деле 'success'
success
- это div, который скрыт и хранится в конце страницы, и это перемещается в родительский.
<div id="success">Your message was sent</div>
Мой код
$('.msg').click(function() {
self = $(this);
var type = $(this).data('type');
if(type) {
// ajax call
$.ajax({
type:"GET",
url:"/msgr/",
data:data,
dataType: 'json',
beforeSend:function(html){
},
success: function(callBack){
$('#'+type).insertAfter(self.parent()).show();
}
},
error: function(page_data){
},
});
}
return false;
});
self
является свойством объекта window
, который доступен только для чтения в некоторых версиях IE.
Простейшим решением является переименование переменной (особенно в случае глобальной переменной), или некоторые случаи ограничивают использование self
в определенной области видимости функции, объявляя ее с помощью var
.
n
в 9/10 случаях вызвана ошибкой в строкеnm
верно?