【问题标题】:jQuery pointer to element which is clicked指向被点击元素的jQuery指针
【发布时间】:2011-05-31 19:24:12
【问题描述】:

我希望它是愚蠢的,但是我今天的头是正确的超载:) 我有这段代码,我需要将指针存储在被点击的元素上并将其传递给回调函数。正是它是一个提交按钮,在正确提交表单的 ajax 后,我想删除它们的内容。我已经尝试了很多这样的 parent(),children(),.. 组合,但它不起作用:

$("form :submit").click(function () {  
            var element = this;  
            $(this).ajaxSubmit(function(payload, element){  
            $.nette.success(payload);  
            $(element).parent().children(".addStatusTextArea").val("");  
            hideMessage();  
        }  
    );  

    return false;  
});

【问题讨论】:

  • 你的标记是什么样的?

标签: javascript jquery html-parsing


【解决方案1】:

问题是element在您的回调参数中指定,请忽略它,如下所示:

$("form :submit").click(function() {
  var element = this;
  $(this).ajaxSubmit(function(payload) { //no element here in params
    $.nette.success(payload);
    $(element).parent().children(".addStatusTextArea").val("");
    hideMessage();
  });
  return false;
});

当它在参数中时,更多本地element被定义,而不是你之前设置的。我不确定您的相对 .parent().children() 呼叫是否正确(如果是,则可能是 .siblings(".addStatusTextArea"))而没有看到您的标记...但您的主要问题是 element 不是您想要的。

【讨论】:

    【解决方案2】:

    从传递给 ajaxSubmit 的函数中删除元素参数。 即

    $("form :submit").click(function () {
        var element = this;
        $(this).ajaxSubmit(function(payload){
            $.nette.success(payload);
            $(element).parent().children(".addStatusTextArea").val("");
            hideMessage();
        });
        return false;
    });
    

    【讨论】:

      猜你喜欢
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      相关资源
      最近更新 更多