变量在JQUERY函数中获取“未定义”

时间:2019-10-19 20:09:11

标签: jquery

我是webdevelopment和atm的新手,我试图构建一个处理页面上所有不同按钮的函数(通过邮递方式调用php代码)。 它在没有切换/大小写(或if / else)的情况下可以正常工作,但是一旦我尝试动态“加载”用于Post操作的参数,它就无法正常工作。它实际上有效,当我第二次按下按钮时,这对我来说很奇怪:-)。问题是button_id突然显示为“ undefined” 你能给我一些建议吗?

$(document).ready(function() {

$(".btn").click(function()
{
    button_id = $(this).attr("id");
    switch ($(this).attr("id"))
    {
        case "ZXY" :
           php_func_name =  "ABC"
           php_id = "DEF"
           break;

        case "XYZ" :
           php_func_name = "HIJ"
           php_id = "KLM"
           break;
    }

    $('#' + button_id).click(function() {
        $.post("php_functions.php", {
            method: php_func_name,
            id: php_id
        }, function(data) {
      $("#test").html(data);
      alert (data);
        });
    });

}); 
});

1 个答案:

答案 0 :(得分:1)

问题是您正在更改button.click的功能。如您所不知道的HTML代码一样,我会将php_func_namephp_id数据存储到按钮中的data-属性中:

<button id="ZXY" class="btn" data-funcname="ABC" data-id="DEF"></button>
<button id="XYZ" class="btn" data-funcname="HIJ" data-id="KLM"></button>
$(document).ready(function() {
    $('.btn').click(function() {
        $.post("php_functions.php", {
            method: $(this).data('funcname'),
            id: $(this).data('id')
        }, function(data) {
            $("#test").html(data);
            alert (data);
        });
    });
}