0

我试图定义一个函数 attachPicker 可以这样调用:

(function(){
  $.fn.tagPicker = function(source){
    this.attachPicker();
  }
})(jQuery);

我试过:

(function(){
    $.fn.tagPicker = function(source){
      this.attachPicker();
      //define attachPicker
      $.fn.attachPicker = function(){
        //code here
      }
    }
 })(jQuery);


(function(){
      $.fn.tagPicker = function(source){
          this.attachPicker();
          //define attachPicker
          this.attachPicker = function(){
            //code here
          }
      }
})(jQuery);

两人都扔了

Uncaught TypeError: Object [object Object] has no method 'attachPicker' 

如果我这样做了

(function(){
      $.fn.tagPicker = function(source){
        this.attachPicker();
      }
      $.fn.attachPicker() = function(){ //codes here };
})(jQuery);

有效。但我想在 tagPicker 中定义 attachPicker 以便它可以访问源。任何人都可以解释为什么我尝试过的那些不起作用并给我任何建议?当然,我知道如果在外部定义 attachPicker,我可以将 source 作为参数传递。提前致谢!

4

1 回答 1

0

在使用任何函数之前,您应该定义该函数

试试这个代码

(function(){
      $.fn.tagPicker = function(source){

          //define attachPicker
          this.attachPicker = function(){
            //code here
          }
          this.attachPicker();
      }
})(jQuery);

您可以在这里测试:http: //jsfiddle.net/s23py/ 也可以通过对象调用它:http: //jsfiddle.net/s23py/2/

于 2013-01-29T04:55:11.593 回答