我有一个输入,其中包含事件监听器 onblur 和具有事件监听器 onclick 的按钮。 这就是我组织它的方式
document.addEventListener("DOMContentLoaded", function() {
window.searchButton = document.getElementById("searchButton");
window.searchInput = document.getElementById("searchInput");
searchInput.onfocus = searchFocus;
searchInput.onblur = searchBlur;
searchButton.onclick = search;
});
var resize = function(self, newSize) {
self.setAttribute("size", newSize);
};
var searchFocus = function() {
event.stopPropagation();
resize(searchInput, 30);
};
var searchBlur = function() {
if (searchInput.value === "") {
resize(searchInput, 10);
}
};
var search = function() {
event.stopPropagation();
};
但是当输入被聚焦并且我点击按钮时,使用onblur功能,但是onclick功能不起作用。为什么以及如何解决这个问题?
答案 0 :(得分:1)
您的search
回调应在其参数列表中包含event
。 searchFocus
var search = function(event){
event.stopPropagation();
};
此外,您可能想要检查您的DOMContentLoaded处理程序是否正在触发。根据脚本的组织/加载方式,可能已经加载了DOM,并且在注册处理程序之前触发了该事件。这是一个常见的疏忽。 How to detect if DOMContentLoaded was fired