【问题标题】:Trigger a button from another button从另一个按钮触发一个按钮
【发布时间】:2020-08-01 04:58:42
【问题描述】:

我想通过按下另一个按钮来触发按钮的类。 我这里有这个按钮

                 <button class="clear-cart banner-btn">clear cart</button>

我用来清理购物车。我得到了这个订单确认 html 页面,我按下“返回”按钮返回主页并删除本地存储。所以当我从订单确认返回主页时,我希望我的购物车是空的。

                        <button class="clear-cart banner-btn">clear cart</button>

当然,我尝试将此代码放入订单确认页面,但 id 不起作用。我什至有相同的javascript。那么,当我点击订单确认页面中的按钮时,是否会触发主页中购物车中的按钮?预先感谢。

【问题讨论】:

  • 确实有问题,回去修一下。如果没有,则将状态保存在会话存储中,并在站点加载时从存储中读取并清除购物车。

标签: javascript html button


【解决方案1】:

从问题的第一部分开始做你想做的事情似乎是非常糟糕的做法。为什么不直接触发函数?我的意思:

  • 您有一个调用函数 A 的按钮 A 和一个按钮 B。
  • 为什么不让按钮 B 调用相同的函数 A?或者一个函数 A2 本身调用相关部分或整个函数 A)

至于如何将它们连接起来 - 我要说的是你的问题的第二部分更多的是在好的轨道上 - 只是 import foo from 'path/to/foo'? (如果您设置了节点)。你的设置是什么,你用的是什么?


为什么这是一种不好的做法?关注点分离。如果您不确定那是什么,请尝试查看 Clean Code 或一些类似的指南。这是 Bob 叔叔(清洁代码)https://www.youtube.com/watch?v=2dKZ-dWaCiU 的一个好视频

例如您的问题是您认为您的购物车在主页上。不应该。它不应该在页面上。页面是一个细节。无论任何页面,您都需要购物车工作。


这个答案假设你是在学习,而不是在做客户工作,因此旨在理解而不是解决直接问题。

这是连接两个文件的最小(虽然不是很好)方法。

<!-- index.html -->
<html>
    <body>
        <button>Button text</button>
    </body>
    <script src='./foo.js'></script>
</html>
// foo.js
console.log('hi from foo')

您需要的是跨页面可用的功能,即在每个页面中导入。您可以每次都像这样简单地导入它。或者查看框架来为你做这件事。 请注意,框架并不是最终的全部解决方案,但对于学习,我想它们会让你走上正轨。


使用模块的方法(在评论How to do import/export a class in Vanilla JavaScript (JS)中链接)是

<script type="module" src="./foo.js"></script>

祝你好运:)

【讨论】:

  • 您好,感谢您的回答。是的,我确实有一个按钮 A 和一个按钮 B。我在按钮 B 上设置了功能,但它不起作用。这就是为什么我想知道是否有办法从另一个按钮触发按钮。不,我没有使用节点。只有 html、css 和 vanilla javascript。
  • 尝试将 import 语句放到一个只有 console.log 的文件中,看看它会不会触发。 (例如import foo from './foo.js' 和 foo.js:console.log('yep it's connected!') 从开发工具检查控制台。
  • 你好,我试过了。而且我没有看到任何日志。所以这意味着它没有连接或什么?但我通过 html 链接了 javascript,我没有看到任何问题。
  • 是的。没有日志,没有连接。我已经用一个最小的例子更新了答案,并尝试检查module 属性stackoverflow.com/questions/44490627/…
  • 感谢您的回答,我会尝试使用您提供的链接解决问题。
猜你喜欢
  • 2011-11-23
  • 2021-07-18
  • 2013-08-23
  • 2016-11-12
  • 2021-05-16
  • 1970-01-01
  • 2018-12-04
  • 1970-01-01
  • 2014-04-24
相关资源
最近更新 更多