我有兩個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