Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止子单击事件触发其父事件_Javascript_Jquery_Asp.net_Events_Video - Fatal编程技术网

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;

我有一个视频标签,它放在asp.net LinkButton控件中。该按钮在单击时触发一些事件。如果用户单击视频,视频事件(播放视频)和按钮事件都会触发。我只想播放视频

我在网上找到了不同的解决方案,但都不管用

以下是我的javascript代码:

<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
is
undefined
中的内联事件处理程序,尽管您试图检测它的存在。最好的解决办法是按照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>