2011-08-10 2 views
0

'공항'이라는 JQuery 플러그인을 편집 중이며 문제가 발생했습니다.Jquery Plugin 문제

코드에서 언급 한 시점에서 div를 지우고 싶지만 $ (self) .empty()를 사용하면됩니다. 코드가 멈 춥니 다. (코드를 중간에서 내려). 여기

내 코드입니다 :

function($){ 
$.fn.extend({ 
    airport: function(array) { 

     var self = $(this); 
     var chars = ['a','b','c','d','e','f','g',' ','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','-']; 
     var longest = 0; 
     var items = items2 = array.length; 

     function pad(a,b) { return a + new Array(b - a.length + 1).join(' '); } 

     $(this).empty(); 

     while(items--) 
      if(array[items].length > longest) longest = array[items].length; 

     spans = longest; 
     while(spans--) 
      $(this).prepend("<span class='c" + spans + "'></span>");  


     function testChar(a,b,c,d){ 
      if(c >= array.length) 
       setTimeout(function() { testChar(0,0,0,0); }, 500);    
      else if(d >= array[c].length) 
       //Div should be cleared here... 
       setTimeout(function() { testChar(0,0,c+1,0); }, 500); 
      else { 
       $(self).find('.c'+a).html((chars[b]==" ")?"&nbsp;":chars[b]); 
       setTimeout(function() { 
        if(b > chars.length) 
         testChar(a+1,0,c,d+1); 
        else if(chars[b] != array[c].substring(d,d+1).toLowerCase()) 
         testChar(a,b+1,c,d); 
        else 
         testChar(a+1,0,c,d+1); 
       }, 20); 
      } 
     } 
     testChar(0,0,0,0); 
    } 
}); 

}) (jQuery를);

모든 콘텐츠의 div를 지우는 방법을 알려주세요. 미리 감사드립니다!

+0

은 실제 코드 $ (자필) 또는 $ (이)입니까? 사촌 위의 코드에서 그것은 $ (이)하지만 잘못된 것입니다 (자체) – Evan

+0

그게 내 실제 코드 –

+0

모든 $ (자기)를 자기에게 변경 – Evan

답변

1

self이 이미 jQuery 개체 인 경우 $()으로 감싸는 것이 좋습니다.

+0

마찬가지로 : self.empty(); 그렇다면 작동하지 않습니다 ... –

+0

예,'self.empty();' – ShankarSangoli

+0

'$ (self)'가 코드의 여러 위치에서 사용되며 모든 곳에서 변경되면 정상적으로 작동합니다. – ShankarSangoli