【问题标题】:CSS tag live click not firingCSS标记实时点击未触发
【发布时间】:2023-03-07 09:53:02
【问题描述】:

我有一个由第 3 方库 JQGrid MVC 动态生成的锚标记。

看起来像这样:

<a id="xx" class="someClass" href="javascript:void(0)">Does Stuff</a>

我想按如下方式钩入它的点击事件:

$(".someClass").on("click", function(){
    alert('hello');
});

这是一个jsfiddle link

我相信这个事件没有触发,因为创建它的第 3 方控件已经有一个事件处理程序。

是否有可能调用我的点击事件,然后再调用第 3 方?

我正在使用 JQuery 1.7.2 和 JQGrid 4.2.0

【问题讨论】:

  • 您的 jQuery 是否在文档就绪调用中?
  • 是的。我也在外面试过,没有骰子。

标签: jquery asp.net-mvc-3 jqgrid-asp.net


【解决方案1】:

尝试委派活动

$("body").on("click",".someClass", function(){
    alert('hello');
});

看起来没有附加事件,因为锚点是动态生成到您的 DOM 中的。将事件委托给锚的父级应该可以解决您的问题

【讨论】:

  • 谢谢。 “on”应该适用于动态添加的标签。我试过你的建议,但没有奏效。直接父级是一个带有 EditButton 类的 td,所以我尝试了: $("td.EditButton").on("click", ".someClass", function () { alert('hello'); });跨度>
  • 我认为即使是 td 也是动态添加的。选择一个静态的父级
  • 而不是 href="javascript:void(0)" 尝试 href="javascript:alert('hi')" 并检查您是否看到警报
  • 试过 $(".someClass").attr("href", "javascript:alert('hi')");在我的文档中准备好了,但它没有更新锚标签
猜你喜欢
  • 1970-01-01
  • 2018-05-21
  • 2015-02-06
  • 1970-01-01
  • 2018-04-29
  • 2015-03-06
  • 2011-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多