【问题标题】:KnockoutJS Hover on UL doesn't trigger, works with CSS:hover?UL 上的 KnockoutJS 悬停不会触发,适用于 CSS:悬停?
【发布时间】:2017-09-04 17:30:32
【问题描述】:

所以我有一个我正在开发的地理藏宝网站的组织系统,但由于某种原因,我终生无法在这个 UL 上触发鼠标悬停。

<ul data-bind="foreach: markers, event { onmouseover: highlightLocation }" class="locationList">
    <h3 class="resultTITLE"> <span data-bind="text: title"></span></h3>
    <p class="resultLATLONG">LAT <span data-bind="text: lat"></span>, LONG <span data-bind="text: lng"></span></p>
</ul>

如果我做一个简单的 CSS :hover pseudo UL 样式会改变,但如果我尝试通过 KnockoutJS 使用它,我无法触发任何东西。作为删除其他代码的参考,我的 viewModel 如下所示:

var viewModel = {
   //other code inbetween, linted

   highlightLocation : function() {
      console.log("hovering!");
   },
};

ko.applyBindings(viewModel);

过去几个小时我一直在盯着它看,我觉得我错过了一些简单的东西,它正盯着我错过的脸。有什么想法吗?

【问题讨论】:

    标签: javascript html knockout.js


    【解决方案1】:

    对淘汰赛不太熟悉,但注意到一些事情并让它发挥作用。

    event 后面缺少一个冒号,而事件实际上称为 mouseover,而不是 onmouseover

    var viewModel = {
      title: "title",
      lat: 5,
      lng: 5,
      highlightLocation: function() {
        console.log("hovering!");
      },
    };
    
    ko.applyBindings(viewModel);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
    <ul data-bind="event: { mouseover: highlightLocation }" class="locationList">
      <h3 class="resultTITLE"> <span data-bind="text: title"></span></h3>
      <p class="resultLATLONG">LAT <span data-bind="text: lat"></span>, LONG <span data-bind="text: lng"></span></p>
    </ul>

    (fiddle)

    【讨论】:

    • 注意,你也可以使用event: { hover: highlightLocation }
    • 啊,那个冒号成功了,我知道我在看它。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2014-04-10
    • 2020-08-27
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    相关资源
    最近更新 更多