从其他按钮点击触发按钮

Trigger button click from other button

我正在尝试从另一个按钮触发按钮点击以在我的 squarespace 网站中使用。

我将以下内容添加到 header:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
    $(document).ready(function() {
        offerteHeader = $( "a.theme-btn--primary-inverse:contains('Offerte aanvragen')" );
        offerteForm = $("button:contains('Offerte aanvragen')");
        offerteHeader.removeAttr("href");
        offerteHeader.on( "click", function() {offerteForm.click()});
    });
</script>

当我点击 OfferteHeader 按钮时没有任何反应 :(.

当我登录到控制台时,OfferteHeader 和 offerteForm 似乎引用正常。

同时从 chrome 开发控制台触发 offerteForm.click() 似乎工作正常并触发事件。

我还检查了侦听器是否正在使用控制台日志以及它是否可以引用 offerteForm。

这里有什么问题?该站点可以在 https://sturgeon-groundhog-cnzt.squarespace.com/ 上找到,密码是 bellboy。抱歉,这是一个方形网站,无法更改。

考虑以下因素。

$(document).ready(function() {
  var offerteHeader = $("a.theme-btn--primary-inverse:contains('Offerte aanvragen')");
  var offerteForm = $("button:contains('Offerte aanvragen')");
  offerteHeader.click(function(e) {
    e.preventDefault();
    offerteForm.trigger("click");
  });
});

查看更多:https://api.jquery.com/trigger/

这不是最佳做法,但有效:

$(document).ready(function() {
  var offerteHeader = $("a.theme-btn--primary-inverse:contains('Offerte aanvragen')");
  var offerteForm = $("button:contains('Offerte aanvragen')");
  offerteHeader.click(function(e) {
    setTimeout(function() {
      offerteForm.trigger("click")
    });
  });
});