2009-08-05 27 views
0

我知道這聽起來很平凡,但下面的函數(return ( $ this).each()...`)似乎是我的插件中的所有內容,但這意味着我甚至沒有得到警報。你對可能出現的問題有任何建議嗎? Thx提前。無法訪問插件內的jQuery對象

(function($){ 
    $.fn.plugin = function() { 
     return $(this).each(function(){ 
      var obj = $(this); 
      obj.css('background', 'blue'); 
      alert(this); 
     }); 
    }; 
})(jQuery); 
+0

爲了測試這一點,我包括一個UL-列表內的一堆li元素的,選擇它們並共檢查匹配的元件的長度。結果總是等於0. console.log($('li')。length); – 2009-08-05 16:48:32

+0

哇,問我怎麼稱呼插件... 解決方案很簡單,就像這樣一個問題一樣微不足道。 我忘了撥打電話以包含以下內容: $(document).ready(function(){ $('li')。plugin(); }); – 2009-08-05 16:54:08

回答

1

你是怎麼調用插件的?你有沒有匹配的元素?檢查選擇器上的.length以確保您有> 0個匹配的元素。

0

檢查此

<html> 
<head> 
<script type="text/javascript" src="jquery-1.3.2.min.js"></script> 
</head> 
<script type="text/javascript"> 
    (function($){ 
     $.fn.plugin = function() { 
      return $(this).each(function(){ 
        var obj = $(this); 
        obj.css('background', 'blue'); 
        $("#result").append('<span>in plugin : '+obj.html()+'</span><br />'); 
      }); 
     }; 
    })(jQuery); 

    jQuery(function(){ 
     var test = $("div").plugin(); 

     $(test).each(function(){ 
      $("#result").append('<span>out plugin : '+$(this).html()+'</span><br />'); 
     }); 
    }); 

</script> 
<head> 
<body> 
<div>a</div> 
<div>b</div> 
<div>d</div> 
<div>v</div> 
<span id="result"></span> 
</body> 
</html>