当前位置: 首页 > 知识库问答 >
问题:

单击并在数组上的两个类之间切换(没有JQuery)

邢俊悟
2023-03-14

我需要做一个网站,我可以添加一些东西到购物车。我不需要存储任何数据,所以只需要将一个类更改为'Added Incart'就足够了。这是我目前所拥有的,但它还不起作用。我知道我得到的所有类名都会回到一个数组中。我只是不知道如何改变他们,如果按钮被点击。我用addEventListener和toggle做了很多尝试,但我刚刚开始编程,还不是所有的事情都对我来说都很清楚。我不打算使用Jquery,只使用HTML和JavaScript。

这是我在JavaScript中的内容:

var buyMe = document.getElementsByClassName("materials-icon");

function shoppingcart() {
        for(let i = 0; i < buyMe.length; i++){
            buyMe[i].classList.toggle("addedInCart");
            buyMe[i].addEventListener("click", toggleClass, false)
        }

    }

这就是我的按钮的样子:

<button class="material-icons" onclick="shoppingcart()">&#xe8cc;</button>

谢谢你抽出时间!

共有1个答案

钱锦
2023-03-14

使用事件委派可以使用一个处理程序。使用数据属性验证按钮是否是要添加到购物车的按钮。类似于:

null

document.addEventListener("click", handle);

function handle(evt) {
  const origin = evt.target;
  if (origin.dataset.cartToggle) {
  //  ^ if element has attribute data-cart-toggle...
    origin.classList.toggle("addedInCart");
    //               ^ ... toggle the class
  }
};
.addedInCart {
  color: red;
}

.addedInCart:after {
  content: " (in cart, click to remove)";
}
<button class="material-icons" data-cart-toggle="1">buy</button>
<button class="material-icons" data-cart-toggle="1">buy</button>
<button class="material-icons" data-cart-toggle="1">buy</button>
 类似资料:
  • 问题内容: 我正在寻找一种方法,当单击某些内容时,可以运行两个单独的操作/函数/“代码块”,然后在再次单击同一内容时,运行一个完全不同的块。我把这个放在一起。我想知道是否有更有效/更优雅的方法。我知道jQuery.toggle(),但是有点烂。 问题答案: jQuery有两个称为的方法。在另一个 [文件] 不正是你想要的click事件。 注意: 似乎至少从 jQuery 1.7开始 ,此版本已 弃

  • 假设你有两个活动-A和B,你从A开始B。在B中,你有一个任务。如果任务完成,您希望返回到按下when back键,如果没有,您希望取消整个应用程序。但在解除后,你可以从最近的应用程序菜单中恢复B。如果在那之后你需要同样的后退键的行为。 因此,我想放弃一个活动或整个应用程序(但简历的可能性)。有什么办法可以做到这一点吗?

  • 问题内容: 正如教程向我展示的那样,我已经在最初的几个脚本上构建了一个不错的GUI,但是没有一个脚本解决更复杂的程序的问题。 如果在打开屏幕上有带有“开始菜单”的内容,并且在用户选择后移动到程序的其他部分并适当地重画屏幕,那么执行此操作的优雅方法是什么? 是否只是一个“开始菜单”框架,然后创建一个新的窗口小部件,并填充另一部分的小部件?并在他们按下“后退”按钮时逆转此过程? 问题答案: 一种方法是

  • 问题内容: 如何使用ng-click分别在几个元素上切换类? 在这个问题中,点击切换类是这样完成的: CSS: JS: HTML: 但是,如果我有几个按钮,每个按钮都应通过ng-click切换自己的类,该怎么办? 如果以这种方式设置它: HTML: 如果我按下两个按钮,则两个按钮都将切换。 我知道一种解决方法是为每个按钮定义一个自己的ng-click事件(对于button1,例如f.ex togg

  • 问题内容: 我想在Python中的两个值之间切换,即0到1之间。 例如,当我第一次运行一个函数时,它产生数字0。下一次,它产生1。第三次它返回零,依此类推。 抱歉,如果这样做没有道理,但是有人知道这样做的方法吗? 问题答案: 用途: 请注意,如果您需要比更为复杂的周期,那么此解决方案将比此处发布的其他解决方案更具吸引力。

  • 我是JavaFX的新手,我需要在两个没有菜单栏的锚窗格之间切换,但锚窗格本身中有注册按钮,它应该切换到注册表单表单登录表单我正在使用Scene Builder生成.fxml文件, 我的问题是如何以一种简单的方式做到这一点?loginform与注册按钮 ERRRO是 null main.java controller.java 我的问题是如何在main.java中加载register form,在单