此功能在搜索div imagesearch
所在的同一页面上运行正常。
如果我在网站上的另一个网站上,生病了
无法读取undefined的属性'length'。
控制台点放置第27行,即if语句从if(q.length.
开始。
真的不知道这个问题是什么。有什么想法吗?
function reloadSearch() {
if (!isLoading) {
var q = $('#imagesearch').val();
if (q.length >= 2) {
isLoading = true;
$.ajax({
type: 'GET',
url: 'core/flickr.php',
data: 'search=' + q,
dataType: 'html',
beforeSend: function () {
$('#imageresult').html(
'<img src="img/loading45.gif" alt="loading..." />');
if (!q[0]) {
$('#imageresult').html(
'');
return false;
}
},
success: function (response) {
$('#imageresult').html(
response);
}
});
// enforce the delay
setTimeout(function () {
isLoading = false;
if (isDirty) {
isDirty = false;
reloadSearch();
}
}, delay);
}
}
};
var delay = 1000;
var isLoading = false;
var isDirty = false;
$(document).ready(function () {
reloadSearch();
$('#imagesearch').keyup(function () {
isDirty = true;
reloadSearch();
});
});
答案 0 :(得分:1)
变化:
if (q.length >= 2) {
到
if (q !== undefined && q.length >= 2) {
这将停止从未定义的无法读取值...如果您在.Net中编码,这类似于空引用异常。