Javascript 淘汰:无法绑定到按钮';s使用引导弹出窗口时的单击事件
当用户单击按钮时,我在执行Javascript时遇到问题。不幸的是,这是一个相当复杂的页面,我无法显示全部内容,但希望下面的小片段就足够了 为了简化这个过程,我甚至没有在Javascript 淘汰:无法绑定到按钮';s使用引导弹出窗口时的单击事件,javascript,twitter-bootstrap,knockout.js,Javascript,Twitter Bootstrap,Knockout.js,当用户单击按钮时,我在执行Javascript时遇到问题。不幸的是,这是一个相当复杂的页面,我无法显示全部内容,但希望下面的小片段就足够了 为了简化这个过程,我甚至没有在数据绑定的Knockout绑定中调用实际的视图模型,而是简单地发出警告 <div data-bind="foreach: MyComputedStuff()"> ... <div class="popover-content"> <button onclick="alert('bar')
数据绑定的Knockout绑定中调用实际的视图模型,而是简单地发出警告
<div data-bind="foreach: MyComputedStuff()">
...
<div class="popover-content">
<button onclick="alert('bar')">
This works!
</button>
<button data-bind="click: function(data, event){alert('foo')}">
THIS DOES NOT WORK
</button>
</div>
...
</div>
感谢haim770、Alexander、UweB和mhu的帮助。
一位同事指出了敲除不绑定单击事件的原因:引导程序正在修改DOM。
通过使用Chrome扩展,我的同事指出,包含我的按钮的div元素不在我告诉Knockout将绑定应用于。。。Bootstrap移动了它
我正在使用Bootstrap的功能,我的按钮位于一个弹出框内,Bootstrap已从我正在使用的div中移出。
foreaching。单击时发生了什么?有错误吗?您是否检查了控制台中的错误?@haim770控制台中没有任何内容,页面的其余JS继续工作。在Chrome和IE9中尝试过。通常在执行clickbinding时,方法本身在ViewModel中声明如下。可能是KO没有按照您的方式设置来处理函数?似乎是KO的问题。computed
,请参见(computed)vs(simple observable array)按钮的父对象上是否有(on)click处理程序?是否与此有关:
<a rel="tooltip"
title="Favourite App"
data-bind="click: function(data, event){$root.ToggleFavorite(data)}">