Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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 如何在JS中单击时检查Div是否已禁用_Javascript_Html_Magento2 - Fatal编程技术网

Javascript 如何在JS中单击时检查Div是否已禁用

Javascript 如何在JS中单击时检查Div是否已禁用,javascript,html,magento2,Javascript,Html,Magento2,我想检查类名为swatch option的div,它是动态出现的,这个类中不仅有一个div,还有很多div,同一个类中有很多div,现在我想检查一下,如果其中一个div被禁用,并单击该div,那么它会显示一条消息。让我通知您,我希望在javascript中执行此操作,而不是在Jquery中执行此操作。我试过的代码是 var e=document.getElementsByClassName(“样例选项”); e、 onClick=MyFunction; 函数MyFunction() { 如果(

我想检查类名为swatch option的div,它是动态出现的,这个类中不仅有一个div,还有很多div,同一个类中有很多div,现在我想检查一下,如果其中一个div被禁用,并单击该div,那么它会显示一条消息。让我通知您,我希望在javascript中执行此操作,而不是在Jquery中执行此操作。我试过的代码是


var e=document.getElementsByClassName(“样例选项”);
e、 onClick=MyFunction;
函数MyFunction()
{
如果(e.disabled==true){
警报(“工作”);
}否则{
警报(“不工作”);
}
}
我也试过了


window.onload=函数(){
var e=document.getElementsByClassName(“已禁用”);
e、 onClick=函数MyFunction()
{
如果(e.disabled==true){
警报(“工作”);
}否则{
警报(“不工作”);
}
}
}
但仍然不起作用


我在颜色周围画的圆圈被禁用了,因此当我单击这些颜色时,它会显示一条消息“缺货”

Div元素不能被禁用。仅表单元素,如按钮和输入。但是,您可以通过在div上设置一些类名,然后适当地设置该类的样式来模拟禁用状态。或者,您也可以将div更改为按钮,并取消默认浏览器样式。请注意,您的代码不会正常工作,因为:

var e = document.getElementsByClassName("swatch-option"); // returns an array of elements
e.onClick = MyFunction; // e is not an element it's an array, and also MyFunction has not been declared yet.
如果使用类来禁用,则可以使用
document.getElementsByClassName(“disabled”)
来获取禁用的元素。如果在按钮上设置了disabled属性,则不会处理任何单击,因此无需执行其他操作。我建议采用这种方法。

如果元素被禁用,它不会响应用户操作,无法聚焦,并且不会触发命令事件。如果是表单元素,则不会提交。

您可以按以下方式尝试使用某些颜色:

var els=document.querySelectorAll(“.swatch选项”);
数组.from(els).forEach(函数(el){
el.addEventListener('click',function MyFunction(){
如果(this.style.color=='gray'){
警报(“工作”);
}否则{
警报(“不工作”);
}
});
});
swatch-option1
swatch-option2
swatch-option3

swatch-option4
亲爱的@Asad Khan我们只能禁用表单元素,即输入、选择、按钮等。我们可以隐藏,删除等一个div。你明白了吗…?实际上它显示了颜色和库存中不可用的颜色,然后它使它们被禁用,所以我只是简单地想要库存中不可用的产品,然后它需要显示库存中不可用的消息排序消息,然后你只需隐藏或替换其中的文本正如@AsadKhan正确指出的那样,disabled属性仅适用于表单元素。在您的情况下,据我所知,我相信您需要为不可用的库存设置单独的单击行为。正如你所说,颜色是不同的。因此,与其检查处理程序函数中的disabled属性,不如检查颜色。不,我不想删除,但当客户选择特定的颜色时,它会显示一条消息,表明产品缺货,因此,先生,我需要像
document.getElementsByCassName(“disabled”)一样查找它
因此,如果类被禁用,我想应用该条件,然后。。。那么如何应用if条件如果使用getElementsByClassName获取禁用的元素,你可以在onClick上附加一个处理函数,它做你想做的事情-如果需要的话,可以不做,因为它只应用于禁用的div。你能更新你的答案吗,因为我真的不懂JSF或者禁用我该怎么做?有什么解决方案吗?@AsadKhan,禁用的属性只适用于表单元素,比如输入,此外,你不能点击任何禁用的元素…是的,这是一个输入。。。你可以在我的更新中查看它question@AsadKhan,图像没有帮助,请共享示例html:)