пользовательский плагин jQuery для выделения текста - PullRequest
0 голосов
/ 30 марта 2012

Я новичок в jquery плагинах.Я прочитал несколько статей и решил попробовать свои силы.Плагин, который я написал, выдвигает на первый план элемент на зависании.Вот код моего плагина.

 // file name hello.js
  (function($){

$.fn.hello=function(option){
    var opts=$.extend({},$.fn.defaults,option);

    return this.each(function(){
        $this=$(this);
        $this.hover(
        function(){$this.css({'border-bottom':opts.borderbottom,'background-color':opts.background})},
        function(){$this.css({'border-bottom':'0px','background-color':'#fff'})}); 


        })


    }
$.fn.defaults ={
    borderbottom: "1px solid #999",
    background : "#CCC"
    }

})(jQuery);

, а вот HTML:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="jquery-1.7.2.js"></script>
<script src="hello.js"></script>
<script>
$(document).ready(function(){
$('ul.class1 li').hello();
});
</script>
</head>
<body>
<ul class="class1">
<li>SOMETEXT</li>
<li>SOMETEXT</li>
<li>SOMETEXT</li>
 <li>SOMETEXT</li>
 <li>SOMETEXT</li>
 </ul>
 </body>
 </html>

и теперь проблема:
Я не знаю, что происходит не такздесь, но код выделяет только последний элемент списка.любая помощь будет высоко оценена.

Ответы [ 2 ]

0 голосов
/ 10 апреля 2012

Я понял.

вот рабочий код.

       (function($){

$.fn.hello=function(option){
    var opts=$.extend({},$.fn.defaults,option);

//  /return this.each(function(){
    //  $this=$(this);
        //alert($this.toString());
    //  $this.hover(
    return this.hover(
        function(){$(this).css({'border-bottom':opts.borderbottom,'background-color':opts.background})},
        function(){$(this).css({'border-bottom':'0px','background-color':'#fff'})}); 


        //})


    }
$.fn.defaults ={
    borderbottom: "1px solid #999",
    background : "#CCC"
    }

})(jQuery);

это просто отлично работает: D

0 голосов
/ 30 марта 2012

попробуйте дать каждому Ли идентификатор и вызвать функцию, подобную этой

<script>
$(document).ready(function(){
$('#li1').hello();
$('#li2').hello();
$('#li3').hello();
$('#li4').hello();
$('#li5').hello();
});
</script>

Вы можете просто попробовать это:

$(document).ready(function(){
$('ul.class1 li').each(function(){hello()});

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...