【问题标题】:Click not triggering for modal in IE Edge在 IE Edge 中单击不触发模态
【发布时间】:2017-01-11 12:34:07
【问题描述】:

我无法仅在 Microsoft Edge 中打开模式。

打开模态的链接是:

<%= link_to the_path, class: "btn btn-tertiary class-used-to-find-the-link", data: {"things-id" => 4, "other-things-id" => 7} do %>
  <span>The Link's Text</span>
<% end %>

链接的 JavaScript 是:

$('class-used-to-find-the-link').click(onClick);

上面提到的onClick 方法类似于:

onClick   =   function(event) { 
                 //blah..blah...blah
              };

.click 不仅在 IE Edge 中被触发,而且在所有其他浏览器中都有效。上面的这个链接应该打开一个模式。我还有其他不打开模式的.click 实例,这些都很好。

所以,我认为这可能与这里的讨论有关:Microsoft Edge: onclick event stops working?。与链接的帖子类似,当我刷新页面时,链接确实有效并且模式打开了。

另外,如果我首先打开包含要在另一个选项卡中单击的链接的页面,通过右键单击和“在新选项卡中打开”,那么该链接也将起作用。

我已经尝试了我链接的帖子中的一些答案,包括mousedownmouseup,但这些都不起作用。

感谢任何帮助。

【问题讨论】:

标签: javascript ruby-on-rails-4 onclick dom-events microsoft-edge


【解决方案1】:

这是由 Turbolinks 引起的,与此处的 SO 问题和答案无关:Microsoft Edge: onclick event stops working?。因此,在某种程度上,此处链接的评论:https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/5782378/ 是有效的。

我以相同的方式禁用了 Turbolinks,并在此处的答案中: https://stackoverflow.com/a/27196250/1945948

具体来说,问题是由 turbolink 和事件处理程序的组合方式引起的。禁用 Turbolinks 的替代方法是使用委托事件处理。这是一篇关于委托事件处理程序的好文章:https://www.iexposure.com/industry-insights/rails-4-turbolinks-and-delegated-event-handling-in-jquery

【讨论】:

    猜你喜欢
    • 2016-12-02
    • 2017-10-16
    • 1970-01-01
    • 2014-05-21
    • 2012-05-31
    • 1970-01-01
    • 2017-01-09
    • 2017-01-06
    • 2011-07-31
    相关资源
    最近更新 更多