假設我有一些填充了內容的大型DIV。將錨點標記內的可點擊組件嵌套
的內容是動態的,它可以是任何東西,它可以包括不同類型的可點擊的組件 - 按鈕,視頻,鏈接等
我需要的DIV自己是點擊和路由的一些網址,但同時我需要不同類型的可點擊組件才能使用。如果您按任意鍵,則不應調用DIV級別的路由。
我已經嘗試不同的方法,似乎沒有工作:
- 裹帶的標籤,整個DIV - 的DIV將路由到URL內的任何點擊,並沒有可點擊組件會可用。此外,由於無法嵌套A標籤,因此可以防止在該DIV中嵌入其他A標籤。
- 向DIV添加一個onclick事件並進行相應的路由 - 這解決了A標籤嵌套問題,但是再次沒有可用的可點擊組件。
,唯一合理的解決方案,我可以看到的是處理點擊所有可點擊的組件事件和對附加事件進行stopPropagation所以不會泡到DIV。
但是,這種解決方案是不可行的只是我作爲內該div有可能是不屬於我的控制之下組件,如與未知的內容和功能,視頻控制等
I幀是否有不同的方法我可以使用我失蹤?
更新:
我繼續來管理不同組件的點擊事件和stopPropegation。
在A標籤上它的效果很好。
但是,當我有一個視頻元素與不同的控制按鈕,我試圖把它包裝在一個DIV和stopPropegation在該DIV,但它似乎並沒有工作,不知道爲什麼。
更新2:
這越來越被分鐘怪異......
所以我通過在包裝DIV同時添加stopPropegation和解決的preventDefault視頻元素的點擊次數。我不知道爲什麼我需要使用preventDefault。沒有意義。
現在我正面臨與另一個組件不同的問題。我有一個Bootstrap旋轉木馬,我用DIV包裝它,並試圖在該DIV上的單擊事件上停止播放,並嘗試添加preventDefault。當我在該DIV上停止播放時,傳送帶按鈕停止運行!?
一些幫助和解釋,將不勝感激..
更新3:
我想我可以用defaultPrevented價值的事件,以找出是否對執行路由主DIV元素與否。
我用帶有ui-sref屬性的A標籤包裹了我的主div(忘記提及這是一個Angular應用程序..),並綁定到ng-click事件。
但由於某種原因(似乎與ui-sref有關),jQuery的IsDefaultPrevented總是返回true。
因此,我用DIV替換了A標籤,並在檢查了IsDefaultPrevented值後執行了控制器內部的狀態更改。
所以現在所有的工作。但我不確定爲什麼。
謝謝。這與我目前所做的相似。但是,停止傳播混亂了我在第二次更新中描述的事情 –