我有一个 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>
voucher1
和voucher2
很简单<a id="voucher1" href="blahblah">blah</a>
控件上的标签。我(或浏览器,或两者)做错了什么?
最佳答案
需要阻止 anchor 的默认操作并确保页面已完全加载:
<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/