将DOM元素传递给回调函数

时间:2015-05-22 14:47:20

标签: javascript jquery dom parse-platform jquery-callback

我正在尝试在回调函数中传递DOM元素,如下所示,但回调函数外部的变量输入值('success'和'error')与回调函数内部的值不同。看起来某些属性在作为参数传递时被剥离,或者存在一些多态性。

如何访问回调函数中的DOM元素?

$(":input").change(function() {        
    var DataObject = Parse.Object.extend("Data");
    var data = new DataObject();
    data.set($(this).id, $(this).val());

    var input = $(this);

    data.save({
        success: function(input) {
          // The save was successful.
          console.log(input.val());
          input.addClass("has-success has-feedback");
        },
        error: function(input, error) {
          // The save failed.  Error is an instance of Parse.Error.
          console.log(error);
        }
    });
});

1 个答案:

答案 0 :(得分:1)

当我将参数传递给回调函数(而不是让它使用外部范围变量)时,我使用bind,也可用于更改函数的“this”对象。

所以它会是:

  data.save({
    success: function(__input__parameter) {
      // The save was successful.
      console.log(__input__parameter.val());
      __input__parameter.addClass("has-success has-feedback");
    }.bind(null, input),

    error: function(__input__parameter, error) {
      // The save failed.  Error is an instance of Parse.Error.
      console.log(__input__parameter, error);
    }.bind(null, input)
})