Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果父类为hasClass,则取消js禁用按钮_Javascript_Knockout.js - Fatal编程技术网

Javascript 如果父类为hasClass,则取消js禁用按钮

Javascript 如果父类为hasClass,则取消js禁用按钮,javascript,knockout.js,Javascript,Knockout.js,如果$(“#parent”).hasClass(“bar”),是否可以禁用子div中的按钮而不在实际按钮上放置数据绑定…属性?下面是我的代码。我感觉这是可能的,但我不确定我的做法是否正确: HTML: <div id="parent" class=""> <div class='active'> <button>Button 1</button> </div> <div> 采用这种方法的原因是将有很多很多

如果$(“#parent”).hasClass(“bar”),是否可以禁用子div
中的按钮
而不在实际按钮上放置
数据绑定…
属性?下面是我的代码。我感觉这是可能的,但我不确定我的做法是否正确:

HTML:

<div id="parent" class="">
  <div class='active'>
    <button>Button 1</button> 
  </div>
<div>
采用这种方法的原因是将有很多很多子div,但只有一个具有活动类,如果不需要的话,我会考虑绑定所有子div。非常感谢,

如果您想“禁用”按钮,您可以将其与JQuery和css一起使用:

$('button').css("pointer-events", "none");
这将停止按钮触发单击事件

同样,您可以使用“启用”它

$('button').css("pointer-events", "auto");

使用订阅并窃取monkey_dev1300 jquery怎么样

运行下面的代码段。并将类从foo更改为bar

函数viewModel(){
var self=这个;
this.parentCss=ko.observable('foo');
}
var vm=new viewModel()
ko.应用绑定(vm);
vm.parentCss.subscribe(函数(newValue){
如果(newValue==='bar')
{$('.active button').attr(“disabled”,true);}
其他的
{{$('.active button').attr(“disabled”,false);}
});


更改类别:


问题是关于淘汰js,而不是jquery。如果您感兴趣,请再次阅读。然后删除jquery标记您仍然在问题中使用jquery,就像您没有为您的
self.parent
函数打上标记一样。您必须使用数据绑定来实现这一点。哈哈,我一直在努力解决这个问题,但没有任何运气。这可能是可能的,但它将是hella hacky。你所说的“标记”是什么意思?这是一个淘汰词吗?这不是一个术语,我只是说你没有为self.parent检索任何东西。它只是有点像self.parent,但什么都不做。活动类是如何设置的?
if($('.'parent').hasClass('bar')){$('.active button').attr(“残疾”,对);}
也可以使用jquery。谢谢!如果输入不存在,这将如何工作?相反,我使用一个单独的按钮单击事件来切换类?这里有一个小问题:给你,我想你的困难可能是尝试不使用jquery。尽可能尝试使用敲除绑定。因此你会注意到移动了单击与在jquery中处理viewmodel相反,它允许视图模型更新,然后所有侦听器都可以启动。如果您尝试处理viewmodel之外的内容,通常必须手动订阅。
$('button').css("pointer-events", "auto");