我检查了我的变量,它们都按预期出现,如果我将它粘贴到.on()
事件之外,则ajax请求有效。然后,如果我只是将相同的请求发布到我的.on()
中,那么它就会崩溃。任何帮助将不胜感激。
$(document).ready(function(){
var searchData;
var titles;
var descriptions;
var websites;
$(".clicked").on("click", function() {
var keyword = document.querySelector('#search').value;
// This alert succeeded
alert(keyword);
var apiURL = "https://en.wikipedia.org/w/api.php?action=opensearch&format=json&search=" + keyword + "&namespace=0&limit=10";
// This alert succeeded and returned correct concat
alert(apiURL);
$.ajax({
url: "https://en.wikipedia.org/w/api.php?action=opensearch&format=json&search=" + keyword + "&namespace=0&limit=10",
dataType: 'jsonp',
type: 'POST',
success: function(data) {
// This alert fails
alert("did this work?")
searchData = data;
titles = searchData[1];
descriptions = searchData[2];
websites = searchData[3];
for (i=1; i<titles.length; i++) {
$("body").append("<div class=\"query\"><a href=" + websites[i] + "\"><h1>" + titles[i] + "</h1><p>" + descriptions[i] + "</p></a></div>");
}
}
});
});
});
答案 0 :(得分:0)
请验证以下内容
1)确保选择器正确。
2)如果可点击内容由ajax函数加载,则尝试实时点击功能。
3)您可以通过浏览器开发工具中的网络选项跟踪它是否已启动。
答案 1 :(得分:0)
我仍然不太清楚为什么会这样,但我在e.preventDefault();
电话之前直接添加$.ajax
并且它有效。