我是Knockout的新手,但一直在使用jQuery。在我目前正在开发的一个项目中,我们使用了Knockout视图模型。jQuery插件与Knockout不兼容
但是,我们还使用了几个jQuery插件用于选项卡,叠加层等。当不使用KO时,或者在容器外使用data-bind
时,这些都可以正常工作。例如,当触发器放置在绑定到KO的容器中时,jQuery Tools的Overlay插件不起作用。
这里有一个简单的例子,与被从来没有触发一个jQuery事件:
<div data-bind="with: dummyData">
<a class="alert" href="#">Never fires!</a>
</div>
<div>
<a class="alert" href="#">Works!</a><br /><br />
<a href="#" data-bind="click: $root.showHidden">Show hidden link.</a>
</div>
而这里的JavaScript的:
var myViewModel = function() {
var self = this;
self.dummyData = ko.observable(false);
self.showHidden = function() {
self.dummyData(true);
};
};
ko.applyBindings(new myViewModel());
$(document).ready(function() {
$('a.alert').click(function() { alert('Clicked!'); });
});
不KO不同的内容替换第一容器或更新DOM如此jQuery点击事件不再起作用了?
我知道KO有自己的click:
事件。我经常使用它,但现在我只想知道是否仍然可以使用jQuery绑定点击事件,特别是因为我想用一些jQuery插件将它们绑定到对象的单击事件上。
你的代码适合我。这里是小提琴:http://jsfiddle.net/fGX3d/1/ –
对不起,是的,这工作。我更新了你的小提琴:http://jsfiddle.net/fGX3d/2/。点击隐藏的永远不会触发的'显示隐藏'链接和jQuery事件... – Knelis