防止子点击事件触发其父事件

时间:2015-12-12 13:45:53

标签: javascript jquery asp.net events video

我有一个放在asp.net LinkBut​​ton控件内的视频标签。单击时按钮会触发一些事件。如果用户点击视频,视频事件(播放视频)和按钮事件都会触发。我只想播放视频。

我在网上找到了不同的解决方案,但它们没有用。

这是我的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>

这是放置在LinkBut​​ton内部的视频标签(它放在标签内,但我认为这不是问题,因为标签没有onclick事件):

  <asp:Label runat="server" Visible="false" ID="videoHolder">
                        <video controls="true" id="pVideo" onclick="play()">
                            <source  src='<%# !String.IsNullOrEmpty(Eval("postVideo2").ToString()) ? "/uploadedVideos/" + Eval("postVideo2"): "" %>' type="video/mp4"/> 

                        </video>
               </asp:Label>

当调用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>

视频标记:

<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>

我收到“找不到元素”错误。

有人可以告诉我如何在不触发父LinkBut​​ton事件的情况下播放视频吗?

感谢。

0 个答案:

没有答案