Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery可以工作,但I';我在找普通的javascript_Javascript_Jquery_Html - Fatal编程技术网

jQuery可以工作,但I';我在找普通的javascript

jQuery可以工作,但I';我在找普通的javascript,javascript,jquery,html,Javascript,Jquery,Html,这个网站非常有用,这是我第一次需要发布问题。我被卡住了。。。我有一个html搜索表单,它有一个onKeyUp事件,触发一个div并显示结果 <form id="searchform"> <div> What are you looking for? <input tabindex="0" type="text" size="30" value="" id="inputString" onkeyup="lookup(this.value);"

这个网站非常有用,这是我第一次需要发布问题。我被卡住了。。。我有一个html搜索表单,它有一个onKeyUp事件,触发一个div并显示结果

<form id="searchform">
    <div>
        What are you looking for? <input tabindex="0" type="text" size="30" value="" id="inputString" onkeyup="lookup(this.value);"  />
        </div>
    <div id="suggestions"></div>
</form>
我遇到的问题是它不能关闭blur上的div。。。但是如果我使用jQuery并用$(“input”)替换elem var,它就可以正常工作。我尝试了很多不同的方法,我得到了两个结果中的一个。要么div不会在模糊中消失,这使得div中的链接处于活动状态且可单击。或者,blur事件起作用,div消失,但它在链接被点击和激活之前就消失了

所以我的问题是,jQuery的普通javascript是什么?我的理解是,它将模糊事件分配给所有输入

$("input")
我知道我可以使用它,而且它确实有效,但我正在努力学习,而不是试图理解jQuery的作用,而不仅仅是插入我在网上找到的东西。我希望我已经留下了足够的信息来提供一些指导

试试这个:

elem.onblur = function(){
    document.getElementById('suggestions').style.display = 'none';
};

jQuery的
.blur
.on(“blur”,handler)
的快捷方式,
blur
是一个事件,因此您可以通过将函数分配给属性
onblur
来附加到。试试看,它也支持IE,但IE9也支持addEventListener+

function searchbox() {
   var elem = document.getElementById('inputString');
   if(window.addEventListener) {
     elem.addEventListener('blur', function(event) {
       document.getElementById('suggestions').style.display = 'none';
     }, false);
   } elseif(window.atatchEvent) {
     window.attachEvent("onblur", function(event) {
       document.getElementById('suggestions').style.display = 'none';
    });
   } else {
      alert("Your browser does not support events");
   }
}

这一定是我尝试过的方法之一。它允许onblur关闭div,但会在单击链接之前触发。不过还是要谢谢你。添加timeout:
elem.onblur=function(){setTimeout(function(){…},100);}
与前面的建议具有相同的效果,允许关闭div,但不允许单击该div中的链接。这就像一个层次结构,模糊触发器在链接有时间触发之前触发。你能发布一篇JS文章来说明你的问题是什么吗?你是在动态创建这些元素吗?RPM,这是JSFIDLE,但我根本无法让它在那里工作。我刚刚意识到我没有在str应该插入到div中时将link标记添加到str中。修复了这个问题。这里有一个JS的小玩意儿,我不知道为什么,但它在那里不起作用,但它在实际页面中起作用。你需要将javascript的加载类型设置为“No Wrap-in”,这样才能在JSFiddle中起作用。:)你找到问题的答案了吗?
function searchbox() {
   var elem = document.getElementById('inputString');
   if(window.addEventListener) {
     elem.addEventListener('blur', function(event) {
       document.getElementById('suggestions').style.display = 'none';
     }, false);
   } elseif(window.atatchEvent) {
     window.attachEvent("onblur", function(event) {
       document.getElementById('suggestions').style.display = 'none';
    });
   } else {
      alert("Your browser does not support events");
   }
}