2009-08-05 3 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

Для тестирования этого я включал кучу Li элементов в пределах уль-список, выбрал их и проверил длину соответствующих элементов в целом. Результат всегда был euqal равным 0. console.log ($ ('li'). Length); –

+0

Wow thx для того, чтобы спросить меня, как я называю плагин ... Решение довольно простое, столь же тривиальное, как таковая проблема. Я забыл позвонить, включив в него вызов: $ (document) .ready (function() { $ ('li'). Plugin(); }); –

ответ

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> 
Смежные вопросы