我有两个div,一个叫做“mainDesign”,一个叫做“div1”。jquery focus on div
当“div1”被点击时,调用focusin并且边框颜色改变。
如果点击“mainDesign”,“div1”只能聚焦。
该脚本可以工作,但“mainDesign”需要点击两次以使其工作,集中注意力后,该脚本完美地工作。
任何想法? 代码:http://jsfiddle.net/v3DWf/14/
谢谢。
我有两个div,一个叫做“mainDesign”,一个叫做“div1”。jquery focus on div
当“div1”被点击时,调用focusin并且边框颜色改变。
如果点击“mainDesign”,“div1”只能聚焦。
该脚本可以工作,但“mainDesign”需要点击两次以使其工作,集中注意力后,该脚本完美地工作。
任何想法? 代码:http://jsfiddle.net/v3DWf/14/
谢谢。
重写了使用鼠标按下和stopPropagation():http://jsfiddle.net/patrickmarabeas/v3DWf/20/
哈哈,看起来像劳斯莱斯冯打我给它。
我删除事件的内容(),因为它似乎是不必要的步骤...
这是可以接受的?:http://jsfiddle.net/patrickmarabeas/v3DWf/15/
编辑:各地切换的功能,似乎工作作为目前打算:http://jsfiddle.net/patrickmarabeas/v3DWf/17/
试试这个:
$("#div1").focusin(function() {
$(this).css("border-color","#ff9900");
});
$("#mainDesign").mousedown(function(){
setTimeout(function(){
if (!$("#div1").is(":focus"))
$("#div1").css("border-color","#999999");
}, 100);
});
超时是必要的,因为mousedown会在div模糊之前触发。
那么问题是,你在.focusout()事件中嵌套了.mousedown()事件。
因此,这里发生的是,当focusout事件被触发时,您将.mousedown事件附加到mainDesign div。让我再次重复一遍,只有在聚焦事件触发后,才会连接.mousedown事件。
然后,一旦附加.mousedown事件,下次您在mainDesign div中注册时,事件将触发,这就是为什么它当前会让您点击两次。
所以最简单的解决方案是简单地摆脱.focusout事件。
如果点击两次'#div',则不起作用。 –
谢谢帕特里克,效果很好。但是,如果你点击两次,它会停止工作:/ – Max6701
我不认为这是他想要的。我假设他不希望边框消失,如果他们点击“div1”,它会与你的代码一起,因为“div1”在“mainDesign”里面 – Shmiddty