Javascript 防止子单击事件触发其父事件
我有一个视频标签,它放在asp.net LinkButton控件中。该按钮在单击时触发一些事件。如果用户单击视频,视频事件(播放视频)和按钮事件都会触发。我只想播放视频 我在网上找到了不同的解决方案,但都不管用 以下是我的javascript代码:Javascript 防止子单击事件触发其父事件,javascript,jquery,asp.net,events,video,Javascript,Jquery,Asp.net,Events,Video,我有一个视频标签,它放在asp.net LinkButton控件中。该按钮在单击时触发一些事件。如果用户单击视频,视频事件(播放视频)和按钮事件都会触发。我只想播放视频 我在网上找到了不同的解决方案,但都不管用 以下是我的javascript代码: <script type="text/javascript"> function play(e) { if (!e) var e = window.event;
<script type="text/javascript">
function play(e)
{
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
}
/*$(".pVideo").click(function (event) {
if (event.target == this) {
event.stopPropagation();
}
});*/
</script>
功能播放(e)
{
如果(!e)var e=window.event;
e、 取消气泡=真;
如果(e.stopPropagation)e.stopPropagation();
}
/*$(“.pVideo”)。单击(函数(事件){
如果(event.target==此){
event.stopPropagation();
}
});*/
这是放置在LinkButton中的视频标签(它放置在标签中,但我认为这不是问题,因为标签没有onclick事件):
调用play函数时,我在JS中遇到了这样一个错误:“找不到元素”,但我无法找出原因。请注意,在添加所需资源后,我还尝试了注释JQuery函数,但我不断收到错误消息,表示未定义$
编辑:这是我为JQuery所做的,但仍然不起作用:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/script.js">
$("#pVideo").click(function () {
if (event.target == this) {
event.stopPropagation();
}
});
</script>
$(“#pVideo”)。单击(函数(){
如果(event.target==此){
event.stopPropagation();
}
});
视频标签:
<asp:Label runat="server" Visible="false" ID="videoHolder">
<video controls="true" id="pVideo">
<source src='<%# !String.IsNullOrEmpty(Eval("postVideo2").ToString()) ? "/uploadedVideos/" + Eval("postVideo2"): "" %>' type="video/mp4"/>
</video>
我收到“找不到元素”错误
谁能告诉我如何在不触发家长链接按钮事件的情况下播放视频
谢谢 事件对象不是自动通过联机处理程序传递的,并且所有浏览器都没有实现全局事件对象。@Teemu,谢谢,但我没有明白你的意思。你能详细说明一下吗?问题的原因是什么?解决方案是什么?如果使用jQuery,请在某些浏览器中完全删除
play
isundefined
中的内联事件处理程序,尽管您试图检测它的存在。最好的解决办法是按照adeneo的建议去做。@adeneo,谢谢,我用过了,但它一直说$notdefined。有什么解决办法吗?
<asp:Label runat="server" Visible="false" ID="videoHolder">
<video controls="true" id="pVideo">
<source src='<%# !String.IsNullOrEmpty(Eval("postVideo2").ToString()) ? "/uploadedVideos/" + Eval("postVideo2"): "" %>' type="video/mp4"/>
</video>