2009-08-05 8 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); –

+0

どうやってプラグインを呼び出すのか尋ねてくれてうれしいです... 解決方法はとても簡単です。問題はそれほど簡単ではありません。 私はこの電話を以下の電話番号に含めることを忘れていました: $(document).ready(function(){ $( 'li')。プラグイン(); }); –

答えて

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> 
関連する問題