function close() {
console.log('close');
$("#display").hide();
}
我试图在用户点击输入框时调用一个close函数,但它似乎没有工作。
不起作用:
<input type="text" name="searchQuery" id="searchQuery" onblur="javascript: close();" onkeyup="javascript: getSuggest(); "/>
使用:
<input type="text" name="searchQuery" id="searchQuery" onblur="javascript: alert('msg');" onkeyup="javascript: getSuggest(); "/>
如果相关,则getSuggest返回false。
答案 0 :(得分:2)
close
是本机函数[docs]。您不能使用该名称。所以
close();
确实是window.close()
尝试:
<script>
function closse() {
alert('close');
}
</script>
<input type="text" name="searchQuery" id="searchQuery" onfocus="closse();" "/>
答案 1 :(得分:1)
你的onblur中不需要javascript:改为:
<input type="text" name="searchQuery" id="searchQuery" onblur="close();" onkeyup="getSuggest(); "/>
编辑尝试更改为jQuery事件而不是DOM事件:
<input type="text" name="searchQuery" id="searchQuery">
<script>
$(function () {
$("#searchQuery").on("blur", function () {
console.log('close');
$("#display").hide();
});
});
</script>
答案 2 :(得分:1)
您应该使用不引人注目的javascript,并在$(document).ready()
添加内部使用jQuery中内置的.blur函数,如下所示:
$('#searchQuery').blur(function(){
myClose();
});
您还需要重命名close函数,因为它是根据mozilla docs保留的(感谢@Mike Stewart)
答案 3 :(得分:1)
将函数名称从close更改为其他名称,因为close函数是window对象的一部分。
此外,在任何类型的dom-ready事件观察器被触发后,都无法指定函数声明。
示例:请注意,如果您等待window.load或dom.ready函数未附加到dom元素(输入)
答案 4 :(得分:0)
你真的需要HTML中的onblur事件吗?也许更好地将jQuery'blur'事件附加到元素? 像这样:http://jsfiddle.net/VaVy8/
答案 5 :(得分:0)
onblur(这将适用于Firefox和IE) 你可以使用
$('#searchQuery').bind('blur', close);