我正在研究基于ajax的div
搜索图像的功能,该功能还将数据加载到div
容器中。
我有以下代码,如果我没有执行任何搜索条件,它可以正常工作。如果我添加搜索,它会在jquery min.js文件中的所有浏览器中抛出错误。我正在使用1.11.1版本。不同的浏览器显示不同的错
jQuery代码:
$(document).ready(function() {
$("#finder").blur(executeFunction);
function executeFunction(page) {
page = typeof parseInt(page) == "number" ? page : 1;
$.ajax
({
type: "POST",
url: "find.php",
data: {
page: page,
search: encodeURIComponent( $('#finder').val() )
},
success: function(msg)
{
$(document).ajaxComplete(function(event, request, settings)
{
$("#container").html(msg);
});
}
});
}
executeFunction(1);
});
HTML code:
<input type="finder" id="finder" />
没有搜索,所有工作都很好..
以下是我在Firefox中收到的错误:
TypeError: 'initUIEvent' called on an object that does not implement interface UIEvent.
...unction(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.l...
Chrome错误:
Uncaught TypeError: Illegal invocation jquery-latest.min.js:4e jquery-latest.min.js:4Vc jquery-latest.min.js:4Vc jquery-latest.min.js:4Vc jquery-latest.min.js:4Vc jquery-latest.min.js:4Vc jquery-latest.min.js:4Vc jquery-latest.min.js:4m.param jquery-latest.min.js:4m.extend.ajax jquery-latest.min.js:4loadData (index):112m.event.dispatch jquery-latest.min.js:3r.handle
Opera Error:
Uncaught RangeError: Maximum call stack size exceeded
每次搜索时,错误计数器都会增加,并显示相同的错误消息
IE 11错误:
Argument not optional
答案 0 :(得分:1)
我没有尝试重新预测这个问题。
typeof parseInt(page) == "number"
以上陈述始终属实。如果page是event-object,则page的parseInt为NaN,对于上述语句,它将返回true。
我认为以下会更好
$("#finder").blur(function(e) {
executeFunction(1);
});
其他事情。
每次ajax请求完成时,您都绑定了一个跟随ajaxCompleteEvent的实例。换句话说,结果被多次写入页面。
$(document).ajaxComplete(function(event, request, settings){
$("#container").html(msg);
});
为什么不简单地使用
$("#container").html(msg);
代替它?