jQuery onClick将$(this)传递给ajax调用

时间:2016-07-05 19:48:54

标签: jquery

我尝试了各种方式,似乎无法做到这一点。 Onclick,我想拿$(this)并将它传递给我的ajax调用,这样当它完成调用时,我可以对$(this)采取进一步行动。

这是我的代码:

  $('.but_deleteMaterial').on('click',function(e){
    e.preventDefault();

    var r = $(this);

    $.get('/scripts/delete_material.asp?action=delete&cID='+cID,function(r){
      r.closest('.row').hide(); // hide the row that was deleted.
    });

  });

3 个答案:

答案 0 :(得分:2)

您已使用您在r - 函数的回调中传递的函数参数覆盖变量$.get

正确的是:

$.get('/scripts/delete_material.asp?action=delete&cID='+cID,function(data){
      r.closest('.row').hide(); // hide the row that was deleted.
});

data(在本例中)或回调中的函数参数(通常)包含在服务器端脚本中返回(回显)的数据。

答案 1 :(得分:0)

如果你想让r包含被点击的DOM元素。

var r = event.target;

为了根据调用隐藏行,请尝试使用ajaxStop或ajaxComplete

    $(document).ajaxComplete(function(event, xhr, settings) {
    if (settings.url === "...") {
        /* Put your code here */
    }
});

答案 2 :(得分:0)

您可以使用bind方法将//removes checked items foreach (string item in todolistCheckbox.CheckedItems) { string strFilePath = "tododo.data"; string strSearchText = item; string strOldText; string n = ""; StreamReader sr = File.OpenText(strFilePath); while ((strOldText = sr.ReadLine()) != null) { if (!strOldText.Equals(strSearchText)) { n += strOldText + Environment.NewLine; } //XP Calculation xpread(); I WANT --> xplabel.text = xp; --- 2 seconds int x; Int32.TryParse(xp, out x); int buffxp = strOldText.Length * 8 + x; string xpupd = buffxp.ToString(); //write xpwrite(xpupd); xpupdate(xpupd); levelup(xpupd); } sr.Close(); File.WriteAllText(strFilePath, n); } 对象设置为jQuery此对象。只工作ie9 +。

this

});