我不明白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