我正在製作一個按鈕,點擊時會顯示一個HTML框。如果在同一個盒子內單擊其他任何內容,我想隱藏該框。任何建議?有沒有辦法找出用jquery點擊了什麼元素?
回答
您可以使用event propagation (bubbling),你的優勢在這裏,例如:
$("#button").click(function(e) {
//show #box
});
$("#button, #box").click(function(e) {
e.stopPropagation();
});
$(document).click(function() {
$("#box").hide();
});
You can test it out here,如果點擊按鈕或元素(#box
在這種情況下)內,該事件不會冒泡。從其他地方它不會冒泡,達到document
,隱藏了#box
。
$(':not(#box)').bind('click', function() {
// this should match everything except your box
});
請*不*要做到這一點,它會結合事件處理程序的*噸*和沒有解決問題(任何元素*裏面*'#box'仍然會關閉它 – 2010-10-10 21:13:17
想過做這個,但像尼克說這不正是我會需要感謝您的建議 – Johnny 2010-10-10 21:15:56
@Johnny - !一定要認識到這也是巨大的低效率,如果你的DOM中有41,000個元素,這將綁定40,999個事件處理程序......這不是解決任何問題**。亞歷克,我不確定你是否完全想過你的代碼在做什麼,我會重新考慮混合全局選擇器(在這裏暗示爲'*:not()')和綁定的任何方法。 – 2010-10-10 21:19:19
- 1. 有沒有辦法找出某個元素重疊的元素?
- 2. 有沒有辦法找出SharePoint用戶點擊SiteCollection的頻率?
- 3. 有沒有辦法找出隊列中有多少元素
- 4. 有沒有辦法看到元素是否可見,可點擊?
- 5. 有沒有辦法找出TButtonGroup的哪個按鈕被點擊?
- 6. 有沒有什麼辦法來找出什麼樣的JavaScript影響什麼元素?
- 7. 有沒有什麼辦法列出iphone
- 8. 有沒有辦法從jQuery點擊事件中找出這個問題?
- 9. 有沒有辦法找出另一個元素中最寬的元素是什麼?
- 10. 有沒有什麼辦法可以通過RGB顏色找到元素? (WebDriver,C#)
- 11. jQuery:有沒有辦法將'點擊'事件變成雙擊?
- 12. 有沒有辦法找出我的方向是什麼?
- 13. 有沒有辦法找出本地ip是什麼網站?
- 14. 點擊方法jQuery上沒有被數組元素調用
- 15. 有沒有辦法找出提交了SQL查詢的用戶?
- 16. jQuery沒有找到元素
- 17. jQuery沒有找到元素
- 18. 有沒有辦法找到頁面上的所有View.GONE元素?
- 19. 有沒有辦法讓元素在GTM
- 20. 有沒有辦法用Watir突出顯示元素?
- 21. 有沒有什麼辦法用彈簧
- 22. 有沒有什麼辦法可以單獨爲每個元素使用Jquery查找類?
- 23. 有沒有辦法找出.js文件是否使用jquery sintax?
- 24. 有沒有辦法在頁面加載完成之前點擊一個元素
- 25. selenium python點擊元素什麼也沒有發生
- 26. 有沒有辦法從另一頁觸發jquery點擊功能
- 27. 在jQuery中,有沒有辦法只綁定一次點擊?
- 28. 有沒有辦法讓jQuery UI Datepicker不可點擊?
- 29. 有沒有辦法在Python Selenium中按屬性查找元素?
- 30. jQuery點擊沒有註冊哪個玩家點擊。我錯過了什麼?
我確定我最終可以弄明白,但這對你來說可能是一件容易的事。我如何使用切換而不是點擊來實現這個#button? – Johnny 2010-10-10 21:56:00
@Johnny - 我想你還是想'。點擊()'這裏有一個'.toggle()'的元素(如顯示隱藏,隱藏如果顯示),像這樣:http://jsfiddle.net/ nick_craver/zDhv5/10/ – 2010-10-10 22:05:57
我在看到您的評論之前就明白了這一點,您如何看待此代碼與您的反對? $('#button')。toggle(function(){ \t //顯示方框 },function(){ \t //隱藏方框 }); $( 「#箱」)點擊(函數(){ \t e.stopPropagation();} )。 ('#box')。(':visible')){ $(document).click(function(){ \t $(「#button」)。trigger('click') ; \t} }); – Johnny 2010-10-10 22:16:05