我有一个带有关闭按钮的div。关闭按钮有一个通过Knockout.js触发的函数,我想将一个类添加到此按钮的父级,即封装div。但是,在我的JS文件中(见下文),函数触发链接到数组中的对象。
HTML
<div>
<button data-bind="click: $parent.myFunc">
</div>
JS档案
this.myFunc = function(e) {
// this.addClass('boo'); does not work
}
我可以在此函数中关闭console.log,但似乎无法通过标准jQuery操作此元素。
答案 0 :(得分:2)
执行此操作的方法是将css绑定添加到父级,然后在click事件触发的函数中对其进行操作:
<div data-bind="css: someClass">
<button data-bind="click: myFunc">
</div>
在你的JS文件中:
this.someClass = ko.observable("");
this.myFunc = function(e) {
this.someClass("boo");
}
答案 1 :(得分:-1)
因为你标记了jQuery,我假设你可以使用它,所以:
$('button').click(function(){
$(this).parent().addClass('boo');
});
答案 2 :(得分:-1)
这是我在这里的第一个答案,但是如何看待jQuery的.parent()api? http://api.jquery.com/parent/
我对Knockout.js不熟悉,但也许这样的事情可能有用......
$('button').data('bind','click: $parent.myFunc').click(function(){
$(this).parent().addClass('boo');
});