【发布时间】:2015-02-11 21:26:44
【问题描述】:
我正在尝试编写一些涉及调用另一个函数的函数的 Javascript 代码。出于某种原因,我在 Chrome 开发工具中收到一条错误消息,在第 6 行显示“未捕获的 TypeError:非法调用”。但是,getRequest 函数似乎仍然执行并将“h”记录到控制台。这是怎么回事?
$(document).ready(function(){});
$(function(){
$('#search').click(function(event){
event.preventDefault();
var searchTerm = $('#query').val();
getRequest();
});
});
function getRequest(searchTerm){
console.log("h");
var params = {
part: 'snippet',
key: 'AIzaSyC7oHGfvlIMoEnboos6LZ2b2h_KpPu0u1Q',
q: $('#searchbox') //searchTerm
};
url = 'https://www.googleapis.com/youtube/v3/search';
$.getJSON(url, params, function(data){
showResults(data.Search);
//console.log("x");
});
}
【问题讨论】:
-
错误发生在哪一行?
-
你想用
q: $('#searchbox')做什么?这将一个 jQuery 对象作为 URL 参数传递,这是没有意义的。你的意思是q: seachTerm? -
只是想知道:为什么你在第 5 行得到了 searchTerm,然后不把它作为 getRequest() 的参数?
-
顺便说一句,你的代码的第一行什么都不做。
$(handler)与$(document).ready(handler)做同样的事情。见api.jquery.com/ready -
所以我用 LcSalazar 的回答解决了这个问题。如果有人能给我一些反馈,说明为什么我的问题一直被否决,我将不胜感激。我认为这是一个很好的问题,如果没有反馈,我真的别无选择,只能继续发布可能也会被否决的问题,直到我被禁止。
标签: javascript jquery function invocation