首页 > 解决方案 > 如何在 JS 中检查 Div 是否禁用 onclick

问题描述

我想检查类名为swatch-option的div并且它是动态出现的,并且这个类不仅有单个 div,现在还有很多具有相同类的 div 我想检查这些 div 中的一个是否是禁用并单击该 div 然后它向我显示一条消息。让我告诉你,我想在javascript中而不是在Jquery中执行此操作。我试过的代码是

<script type="text/javascript">
    var e = document.getElementsByClassName("swatch-option");
    e.onClick = MyFunction;

    function MyFunction()
    {
    if (e.disabled == true) {
        alert('working');
    }else{
        alert('not Working');
    }
    }
</script>

我也试过

<script type="text/javascript">

window.onload = function() {
    var e = document.getElementsByClassName("disabled");
    e.onClick = function MyFunction()
    {
    if (e.disabled == true) {
        alert('Working');
    }else{
        alert('not Working');
    }
    }
}
</script>

但仍然无法正常工作

我要执行操作的 div

在此处输入图像描述 我围绕颜色制作的圆圈被禁用,所以当我点击这些颜色时,它会显示一条消息缺货

标签: javascripthtmlmagento2

解决方案


div 元素不能是disabled. 仅表单元素,如按钮和输入。但是,您可以通过在 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 属性,则不会处理任何点击,因此无需执行更多操作。我建议采用这种方法。


推荐阅读