如果我封装一个函数在文件里:
;(function(){
   var myfun = (function (){
     'init':function(){
         //******
         $(".mydiv").click(function{
             this.close();
         })
      },
     'close':function(){},
   })();
})();页面代码里,引入上面文件,初始化函数后,请问如何才能检测到close事件的发生?
$(".mydiv").click(function{
   //重新写这个点击事件为什么失效的?
})

解决方案 »

  1.   

    话说,楼主你的代码能运行吗?
    //what's this ?  语法错误。
    function (){
         'init':function(){
             //******
             $(".mydiv").click(function{
                 this.close();
             })
          },
         'close':function(){},
       }
      

  2.   

    function (){var myfun= function (){
      return  myfun.fn.self();
    }
            myfun.fn = myfun.prototype ={
    'init':function(){
             //******     
        $(".mydiv").click(function{
                 this.close();         
           })      
        },     
       'close':function(){},   }
    拷出来的,没试过封装的写法,要好好学学
      

  3.   

    myfun.fn.self();self方法何在?
      

  4.   


    myfun.prototype ={
    "self":function(){
                    return this;
                },
      

  5.   

    你想检测哪个close啊。$(".mydiv").click(function{
                 this.close();
             })这里的this指向的是mydiv元素,并不是myfun里定义的close啊。
      

  6.   

    楼主花点时间,研究下js里的指针吧,this是个很神奇的东东
      

  7.   

    哪里拷出来的?还是有错误啊!
    function (){var myfun= function (){
      return  myfun.fn.self();
    }
            myfun.fn = myfun.prototype ={
    'init':function(){
             //******     
        $(".mydiv").click(function{   // Syntax error for function{this.close();}!!!
                 this.close();         
           })      
        },     
       'close':function(){},   }