开发者

Need to create unique image selectable function in jquery

开发者 https://www.devze.com 2023-01-14 03:58 出处:网络
I have try with toggle function in jquyer but its not working for multiple LI and I tried with the selectable function not working.

I have try with toggle function in jquyer but its not working for multiple LI and I tried with the selectable function not working.

Need to create unique image selectable function in jquery. I have many li with inside image on click on image li will get background color. suppose I click on other li image that should get background and other should be default color its like switch selection (radio button).

<ul><li class="ui-widget-content ui-corner-tr ui-draggable">  
        <fb:profile-pic height="32" width="32" linked="false" uid="557103888" 
             style="width: 32px; height: 32px;" class=" fb_profile_pic_rendered">  
            <img class="" style="width: 32px; height: 32px;" title="some name" 
                 alt="some name" src="files/t557103228_5135.jpg">  
        </fb:profile-pic> 
    </li>
    <li class="ui-widget-content ui-corner-tr ui-draggable">  
        <fb:profile-pic height="32" width="32" linked="false" uid="557103887" 
              style="width: 32px; height: 32px;" class=" fb_profile_pic_rendered">  
            <img class="" style="width: 32px; height: 32px;" title="some name" 
                     alt="some name" src="files/t557103228_5135.jpg">  
        </fb:profile-pic> 
    </li>
    <li class="ui-widget-content ui-corner-tr ui-draggable">  
        <fb:profile-pic height="32" width="32" lin开发者_如何学JAVAked="false" uid="557103886" 
              style="width: 32px; height: 32px;" class=" fb_profile_pic_rendered">  
            <img class="" style="width: 32px; height: 32px;" title="some name" 
                     alt="some name" src="files/t557103228_5135.jpg">  
        </fb:profile-pic> 
    </li>
    </ul>


see this http://www.jsfiddle.net/nTaPU/

Following code will add class liClass2 on selected li ONLY.

$(function(){
    $("ul.class1 li").each(function(i, v){
        $(this).click(function(){                     
            $(this).
                siblings().each(function(){ $(this).removeClass("liClass2");  }).
                end().addClass("liClass2");
        });
    }); 
}); 

css rules

.class1 li{
    background-color:#dddddd;
    color:#000000;
}

.liClass2{
    background-color:#000000 !important;
    color:#ffffff !important;
}

Internal Image can be fetched like below.

$("ul.class1 li.liClass2").html();

Obviously you can always check whether any li is selected using .length function like below

if($("ul.class1 li.liClass2").length > 0)
     //li is selected
else
     //no li is selected yet

Edited:

If you want to unselect selected li then you can do it with toggle function. Replace li click event code listed above with the code below.

$("ul.class1 li").each(function(i, v){
        $(this).toggle(function(){                     
            $(this).
                siblings().each(function(){ $(this).removeClass("liClass2");  }).
                end().addClass("liClass2");
        }, function(){
            $(this).removeClass("liClass2");
        });
 });


you can do this by using jQuery selectable plugin also like this:

<script type="text/javascript">
        $(function(){
            var selectedElement;
            $("#selectable").selectable({
                selecting: function(event,ui){
                    if(selectedElement !== null){
                        $(selectedElement).removeClass("ui-selected");
                    }
                },
                selected: function(event, ui){
                    selectedElement=ui.selected;
                }
            });
        });
    </script>
0

精彩评论

暂无评论...
验证码 换一张
取 消