0

我试图从 form.submit 调用我的 jquery 小部件 api 的公共方法,但我没有成功。谁能帮我?

_cleanFormFields: function() {
  console.log("ok");
},

_addFormListener: function(map, marker) {
    var form = $(".add-form").clone().show();
    form.submit(function (event){
       event.preventDefault();
       _cleanFormFields();
    }
}           

为什么这不起作用?浏览器的控制台引发“Uncaught ReferenceError: _cleanFormFields is not defined”异常

4

1 回答 1

1

_cleanFormFields是某个对象的属性,对吗?所以你不能直接调用它,你需要通过你的对象来引用它:

yourObject._cleanFormFields();

或者,根据_addFormListener()调用方式,您可能可以使用this. 但是您需要保留thisfrom的引用,_addFormListener()因为在.submit()回调this中将是有问题的表单元素:

_addFormListener: function(map, marker) {
    var form = $(".add-form").clone().show(),
        self = this;
    form.submit(function (event){
       event.preventDefault();
       self._cleanFormFields();
    }
}
于 2012-12-17T01:28:45.760 回答