我有一个ASP.NET用户控件(ascx),其中有一个div,其onclick打开一个弹出窗口。我的任务是将超链接放入此div中,该超链接可以放在其他地方,而不打开弹出窗口。我最初的问题是,超链接在其他地方也很好,但是仍然打开了弹出窗口。研究使我成为stopPropagation()。但是,虽然它似乎可以在Firefox中运行,但不能在IE或Chrome中使用。更重要的是,似乎事件本身并没有解决。我在ASCX上尝试了以下方法:

 <script type="text/javascript">
    /*global $*/
    $("#voucher1").click(function(e) {
        "use strict";
        e.stopPropagation();
    });
    $("#voucher2").click(function (e) {
        "use strict";
        e.stopPropagation();
    });
</script>




<script type="text/javascript">
    /*global $*/
    $(function () {
        "use strict";
        $("#voucher1").click(function (e) {
            e.stopPropagation();
        });
        $("#voucher2").click(function (e) {
            e.stopPropagation();
        });
    });
</script>


voucher1voucher2是控件上的简单<a id="voucher1" href="blahblah">blah</a>标记。我(或浏览器,或两者)做错了什么?

最佳答案

需要阻止锚的默认操作,并确保页面已完全加载:

<script type="text/javascript">
    $(document).ready(function(){
        $("#voucher1").click(function(e) {
            e.preventDefault();
            e.stopPropagation();
        });
        $("#voucher2").click(function (e) {
            e.preventDefault();
            e.stopPropagation();
        });
    });
</script>

关于javascript - stopPropagation可在Firefox中运行,但不能在IE或Chrome中运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17535011/

10-12 06:28