Jquery按钮单击事件未触发

Posted

技术标签:

【中文标题】Jquery按钮单击事件未触发【英文标题】:Jquery button click event not firing 【发布时间】:2013-10-14 18:11:46 【问题描述】:

似乎是一个简单的问题,但其他问题的解决方案似乎对我不起作用。

试图通过单击按钮触发 AJAX 请求,但似乎没有触发。

示例 html

<button class="remove_weight_button" id="15">x</button>

javascript

$(".remove_weight_button").click(function()
    var button_id = $(this).attr("id");
    $.ajax(
        type: "POST",
        url: "weight_tracker_process.php",
        data: 
            weight_id: button_id,
            action: "remove"
        ,
        success: function()
            getWeightData();
        ,
        error: function()
            alert("data removal error");
        
    );
    return false;
);

【问题讨论】:

首先,您是否在控制台中看到任何错误?它是否到达处理程序(如果没有,它是否包含在 document.ready 中),您是否看到任何 js 错误或网络错误控制台? 您确定在 按钮加载后正在运行 javascript?这是一个常见的错误。 尝试在函数顶部添加阻止默认值 【参考方案1】:

您的代码在小提琴中运行良好。您的按钮是否在初始页面加载后通过 AJAX 动态呈现?

使用

$(document).on("click", ".remove_weight_button", function()

而不是

$(".remove_weight_button").click(function()

【讨论】:

啊当然,是的,你是对的,它是由 ajax 加载的。以上如何解决这个问题? @user2803072 您使用的“.click”事件仅查找在初始页面加载期间绘制的元素。 "on" 事件查找页面当前状态的元素 或者$(".remove_weight_button").live("click", function() ... 如果页面是动态加载的并且您使用的是 older 版本的 jQuery。关键是 click 没有注意到你提到的动态加载的 DOM 元素。 这个解决方案救了我.. 我尝试了 1 个小时来使用 JQuery 触发一个事件,但无法做到。 @Mike.MKrallaProductions 您对父/子关系感到困惑。 document 是上例中的父元素。它可以是封装.remove_weight_button 的任何元素。

以上是关于Jquery按钮单击事件未触发的主要内容,如果未能解决你的问题,请参考以下文章

Jquery移动按钮点击角落不起作用

ModalPopupExtender OK 按钮单击事件未触发?

单击事件未触发的动态按钮

在 jQueryMobile 中未触发 jQuery 单击事件

未触发 Jquery 移动单击事件

通过数据表jQuery插件添加的按钮上的jQuery单击事件