【问题标题】:Kendo Mobile MVVM ListView with click binding on <UL> and detailbutton在 <UL> 和 detailbutton 上单击绑定的 Kendo Mobile MVVM ListView
【发布时间】:2012-12-13 03:26:11
【问题描述】:

尝试做一些简单的事情。 Kendo UI Mobile ListView 与列表项模板中的 UL (MVVM) 和 detailbutton 上的单击绑定。 click 绑定应该简单地调用视图模型中的单击处理程序函数 - 这可以按预期工作。 detailbutton 应该打开一个 actionsheet - 这不能按预期工作。发生的情况是点击处理程序触发。

如果我可以将“发件人”识别为详细信息按钮,我应该能够简单地从处理程序中发送return 而无需执行任何操作并弹出操作表。

几个问题:

1) 假设我以正确的方式处理此问题,那么识别点击来源的最可靠方法是什么 - LIdetailbutton

2) 如果有更好的方法来做到这一点,它是什么?

我整理了一个小提琴。看看:http://jsfiddle.net/4zvgS/

【问题讨论】:

  • 问题是来自锚标记的点击事件在 JavaScript 中冒泡。标记为另一个应该有帮助的问题的重复。这也是 HTML/JS 的问题,而不是剑道特定的问题。
  • 我不认为这是完全重复的。它特定于 kendo ui,因为我可以通过处理
      单击处理程序中的两次单击来使其工作,如果单击的是详细信息按钮,则不执行任何操作。这就是问题 1) 的内容。如何可靠地确定 detailbutton 是目标?

标签: kendo-ui


【解决方案1】:

您可以添加一个 jQuery 处理程序来停止冒泡事件,如我链接的“重复”中所述,或者您可以执行以下操作来查看点击是否来自详细信息按钮:

    if(e.target.hasClass("km-detail")
      || e.target.parent().hasClass("km-detail")) {
        return false;
    }

【讨论】:

  • 按照您的建议检查课程应该可以工作,但感觉就像我想出的一样,即检查“标题”属性:if (e.target.context.parentElement.title === "more...") 至于防止冒泡,我首先尝试过,但没有任何运气。有机会我会再试一次。
  • @user1843640 你有没有找到更好的方法来处理这个功能?我有完全相同的问题,但发现自己不得不使用 jQuery 作为公认的答案建议
  • @Roark 我已经离开了那个项目,不再使用 Kendo UI,但我不记得曾经找到过更优雅的方式来做到这一点。我在使用 Kendo UI 时遇到过几次这样的挫折,但现在已经有几年了,所以也许产品已经改进了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 2013-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多