我不明白stopPropagation是做什么的。为什么我需要在这段代码中使用stopPropagation()?如果我不使用它,第一次输入键不起作用。下面是代码:http://codepen.io/Juan1417/pen/XNJeWd为什么我需要使用stopPropagation()?
$(document).ready(function() {
$("#searchTerm").keypress(function (e) {
if (e.which == 13) {
$("#search").click();
**e.stopPropagation();**
return false;
}
});
$("#search").click(function() {
var searchTerm = $("#searchTerm").val();
var url = "https://en.wikipedia.org/w/api.php?action=opensearch&search=" + searchTerm + "&format=json&callback=?";
$.ajax({
type: "GET",
url: url,
async: false,
dataType: "json",
success: function (data) {
for (var i = 0; i < data[1].length; i++) {
$("#output").prepend("<li><a href=" + data[3][i] + " target='_blank'>" + data[1][i] + "</a><br><span>" + data[3][i] + "</span><br>" + data[2][i] + "</p></li>");
}
},
error: function (errorMessage) {
alert(errorMessage);
}
});
});
});
stopPropagation防止keypress事件被进一步处理。如果你不这样做,它可能会触发一个表单提交,从而取消你的javascript过程。 –
你有没有在[MDN](https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation)或[jQuery's site](https://api.jquery.com)上查找它/event.stoppropagation/) – adeneo
为什么我不需要在$(“#search”)中使用它。单击(函数(){}; – Juan