假设我有一些填充了内容的大型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值后执行了控制器内部的状态更改。
所以现在所有的工作。但我不确定为什么。
谢谢。这与我目前所做的相似。但是,停止传播混乱了我在第二次更新中描述的事情 –