学习了ajax后,我尝试使用jQuery配合ajax实践,在实践过程中发现了这个问题。
<script>
$(function () {
$("#input").keyup(
$.ajax({
url: '${pageContext.request.contextPath}/Test',
data: { 'name': $("#input").val() },
success: function (result) {
$("#result").html(result)
}
})
)
})
</script>
在错误情况中,我直接向keyup()中传入了$.ajax()
在百度上查找原因,发现了一个可能的答案:
Jquery报错:Uncaught TypeError: ((m.event.special[e.origType] || (intermediate value)).handle || e.handler).apply is not a function
原因:绑定了有的事件,但是还没有写那些函数的,也就是绑定的函数找不到导致的问题。
<script>
$(function () {
$("#input").keyup(
function () {
$.ajax({
url: '${pageContext.request.contextPath}/Test',
data: { 'name': $("#input").val() },
success: function (result) {
$("#result").html(result)
}
})
}
)
})
</script>
将$.ajax()用匿名函数包裹起来后传入。
在与学长的分析交流中,我得知错误的真正原因为$.ajax()
实则是对象(或者称为构造函数),而keyup()
接收的是一个函数参数,因此会报错。
与原来的方法相同,在$.ajax()
外面包裹一层匿名函数即可。