【问题标题】:data-bind click event does not work on chrome for svg under div数据绑定点击事件在 div 下的 svg 的 chrome 上不起作用
【发布时间】:2016-04-21 23:04:47
【问题描述】:

我正在使用 knockout.js,这是我的代码 -

<div data-bind = "event:{click: clickHandler}">
    <svg ...>
        <polygon ... > </polygon>
    </svg>
</div>

单击 svg 在 chrome 上不起作用,我必须在 div 上单击外部 svg,它才能在 chroms 上工作。出于某种原因,chrome 中没有触发 click 事件,但在 IE 11 和 Edge 浏览器中可以正常工作。

任何想法表示赞赏。

【问题讨论】:

  • 您已经尝试在引号之间添加数据绑定值?比如:data-bind="event:..." ?
  • 是的,很抱歉造成混乱。更新了上面的代码。
  • 我在 jsfiddle 上做了一些测试,你的代码没有问题。在 chrome 的 JS 控制台上查看一些错误,并确保在文件中声明了 knockout.js 库,还有 ko.applyBindings();在代码末尾(或 .ready 事件)调用
  • 这里有一个关于 jsfiddle 的示例:jsfiddle.net/MarcelKohls/tmjmydmy
  • 感谢 Marcel,帮助我缩小了问题范围。

标签: javascript google-chrome svg knockout.js onclick


【解决方案1】:

问题是包含上述 div 的 div 需要指针事件:无属性

<div style ="pointer-events: none">
   <div data-bind = "event:{click: clickHandler}">
      <svg ...>
        <polygon ... > </polygon>
      </svg>
   </div>
<div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多