【问题标题】:JS .click() trigger not workingJS .click() 触发器不起作用
【发布时间】:2018-07-13 06:33:56
【问题描述】:

我正在使用dropzone.js 上传文件。

我有一个dropzone 按钮#btn 和输入字段#input

此代码正在运行:

$('#input').on('input', function() {
    $("#btn").click();
});

但是当我在其他部分使用$("#btn").click(); 时,例如下面,它不起作用并且我没有错误:

$(document).ready(function(){
    $("#btn").click();
});

怎么了?

【问题讨论】:

  • 尝试使用$("#btn").trigger("click");
  • #btn 是动态创建的吗?如果是这样,那么当触发就绪事件时,它可能还没有被添加到文档中。事件点击处理程序也是如此,如果在您的就绪事件触发时尚未设置它,它将无法工作。
  • 这可行,但 dropzone 上传不会出现。在准备好的文档中添加了 $("#btn").click(function(){ alert("Hello"); console.log("Hello"); });

标签: javascript jquery click dropzone


【解决方案1】:

您正在尝试模拟click 事件,因此您需要将trigger()click 事件一起使用

$("#btn").trigger("click")

将您的代码更改为:

$(document).ready(function(){
  $("#btn").trigger("click");
});
【解决方案2】:

click() 其 vanila javascript 函数,表示触发器类型。

element.on.click(){
  doSomthing;
}

【讨论】:

    【解决方案3】:

    Dropzone 可能需要一些时间才能通过同一个 document.ready 事件进行初始化。所以给它一点时间。我会尝试:

    $(document).ready(function(){
      setTimeout(function(){
        $("#btn").trigger("click");
      }, 100);
    });
    

    【讨论】:

      【解决方案4】:

      试试这个

      $(document).ready(function(){
      $("button").click(function(){
          alert("The paragraph was clicked.");
      });
      });
      

      或者代替 id 给出类名

        $(document).ready(function(){
          $(".btn-primary").click(function(){
              alert("The paragraph was clicked.");
          });
          });
      

      【讨论】:

        【解决方案5】:

        $('#btn').click( function() {
        	console.log('success');
        });
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <button value='upload' id='btn'>
         Upload
        </button>

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-04-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-02
          • 2018-10-17
          • 2017-04-22
          相关资源
          最近更新 更多