按钮类型输入上的点击事件不起作用

Click event on button type input is not working

本文关键字:事件 不起作用 输入 按钮类型      更新时间:2023-09-26

我正在使用jquery和php设计网页。我的页面有侧菜单,点击其中一个选项,它会向服务器发送一个请求,从文件中读取一些信息,然后它会从中创建一个表单,带有提交和其他按钮编辑(以防有人想更改该表单中的信息),并将此html发送回客户端。我能够成功地做到这一点。但当我点击编辑按钮时,它实际上并没有调用我为所有按钮注册的点击处理程序。

$('button').click(function(){
  alert("click event");
 });

我把它包括在中

jQuery(document).ready(function() {

但是,因为ready()中的所有jquery/js代码都是在页面加载时执行的,所以它无法在表单中找到这些按钮,因为它是我在加载并将其替换为现有的"div"后从服务器获得的,因此它无法调用事件处理程序。如果我为这个表单的父div定义了点击处理程序,那么如果我点击"编辑"按钮,它就会收到点击事件,因为加载初始页面时"div"就存在。如果你必须在客户端对表单进行一些操作,我可能做得不对,可能从服务器上获取整个表单不是一个好主意。但这可行吗?如果是,那么可能的出路是什么?。谢谢

您的事件没有启动,因为您在页面上存在的元素之前定义了它。使用.on()方法应该可以解决这个问题。大致如下:

$('body').on('click','button', function(){
    alert("click event");
});

应该起作用。

如果我正确理解您将动态按钮添加到表单中。您应该尝试使用jQuery.on()代替,请参阅http://api.jquery.com/on/

在你的例子中,这可能适用于

  $("body").on("button","click", function(event){
     alert("Hello world");
  });

在(jQuery 1.7及以上版本)上使用。之前是代表(1.4.2+),之前是现场。。。

$('*your_form*').on('click', 'button', function(){
  alert("click event");
});

您可能只需要使用以下内容:

$(document).on('click','button',function(){
    alert("click event");
});

(jQuery 1.7或更高版本)

您必须使用按钮id 进行呼叫

$('#buttonid').click(function(){
  alert("click event");
 });

或按钮类

  $('.buttonclassname').click(function(){
      alert("click event");
     });