【问题标题】:jquery event handlers on a page with angular.js?带有 angular.js 的页面上的 jquery 事件处理程序?
【发布时间】:2014-08-01 22:47:32
【问题描述】:

我们有一个使用 angular.js 运行的页面,并且在各种 <tr> 元素上有一些 ng-scope 类和 ng-click 属性。

我们想在事后使用类似greasemonkey 的东西来为页面添加功能。具体来说,在某些<td> 元素上,我们希望在单击或鼠标输入时附加文本。

我已经尝试在 jQuery 中使用 clickmouseenter 事件处理程序,但似乎没有任何反应。 (但是,附加到 <div>'s mouseenterclick 处理程序确实会触发它们。)

我对角度的了解有限,我不确定将ng-click 属性附加到元素是否会干扰将jQuery 处理程序添加到其中的其他元素?如果是这样,我可以以某种方式添加到ng-click 处理程序吗?如果有,怎么做?

【问题讨论】:

  • 在这种情况下,我建议将事件委托给 document

标签: jquery angularjs


【解决方案1】:

我猜这是事件顺序类型问题,因为您可能正在页面上动态加载元素。

您的 jQuery 点击逻辑可能正在页面上执行元素真正存在之前。

例如,尝试将您的事件附加到文档中,以便所有 future 匹配的元素都获得该事件。

$(document).on("click", "#yourSelector", function(){
    // Do something.
});

【讨论】:

  • 完成了这项工作。这个页面的加载时间很长——你可以在绘制图表时感受到处理过程——等等,所以我认为你是正确的。谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-01-01
  • 2014-05-15
  • 1970-01-01
  • 2014-09-10
  • 1970-01-01
  • 2022-08-16
  • 1970-01-01
  • 2018-06-24
相关资源
最近更新 更多