将onclick事件中的变量传递给函数

时间:2015-11-25 15:57:10

标签: javascript jquery ajax

在这个问题上整夜都在摸不着头脑。我还在学习Jquery,只是从ajax开始。我正在尝试实现类似于此https://codeontime.com/print/learn/rest/jquery/crud-create-read-update-delete的内容。

我有一个简单的编辑按钮,其中我将ID存储在data-ID属性中。例如,下面是我的按钮的样子。

<button class='edit_button btn btn-info btn-circle btn-xs' type='button' value='Edit' data-ID='1'></button>

我想要完成的是将数据ID值传递给变量并将其传递给我的函数。在这里,我设置了一个用于捕获ID及其工作正常的监听器:

$(document).ready(function () {
$(".edit_button").click(function() {
var Button_ID = $(this).attr("data-ID");
IncidentManager.showIncidentDetails();  
});

我遇到的问题是我需要将button_ID变量onlick传递给我的变量函数,并且剂量似乎正常工作。我觉得我错过了一些东西。

以下是我的完整脚本:

var IncidentManager = {
    // Returns the url of the application server of a demo web app.
    basePath: function () { return '../../../../_vti_bin/listData.svc'; },

    // This function will loadup the data into the modal form,
    showIncidentDetails: function (Button_ID) {
        if (Button_ID == null) return;
        alert(Button_ID);
        $.ajax({
            url: '../../../../_vti_bin/listData.svc/GDI_Tableau_de_bord('+ID+')',
            cache: false,
            dataType: 'json',
            success: function (data) {
            $.each(data, function (index, incident) {

                $('#Description').attr('value', incident.Description);
                $('#Incident').attr('value', incident.Incident);
                $('#état').attr('value', incident.ÉtatValue);
                $('#Priorité').attr('value', incident.PrioritéValue);
                $('#DateDeDébut').attr('value', incident.DateDeDébut);
                $('#DateDeFin').attr('value', incident.DateDeFin);

            });
            }
        });
    },  

};

$(document).ready(function () {
$(".edit_button").click(function() {
var Button_ID = $(this).attr("data-ID");
IncidentManager.showIncidentDetails();  
});

});

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

你只需将变量传递给函数 - 编程不能只通过命名相似的变量,因此你想要的是:

body a, body li, body span {
    color: #222;
}

也是这一点:

$(document).ready(function () {
    $(".edit_button").click(function() {
        var Button_ID = $(this).attr("data-ID");
        IncidentManager.showIncidentDetails(Button_ID);  
    });
});

你可能意味着

....
url: '../../../../_vti_bin/listData.svc/GDI_Tableau_de_bord('+ID+')',

因为代码中没有url: '../../../../_vti_bin/listData.svc/GDI_Tableau_de_bord('+Button_ID+')', 变量。

顺便提一下,您可以使用jQuery ID函数代替.data

.attr

但请注意,var Button_ID = $(this).data("id"); 会将您的数据属性视为小写。