(function($) {
// définition du plugin
$.fn.exemple = function() {
alert('hello world');
return $(this);
};
})(jQuery);<div>a</div><div>b</div>
<script type="text/javascript">$("div").exemple();</script>
(function($) {
$.fn.exemple = function(options) {
var defaults = {
title: "",
selectEvent: null
};
var opts = $.extend(defaults, options);
return $(this);
};
})(jQuery);$("ul").customDropDown();(function($) {
//Définition du plugin
$.fn.imgDropDown = function(options) {
// définition des paramètres par défaut
var defaults = {
title: "",
selectEvent: null
};
// mélange des paramètres fournis et des paramètres par défaut
var opts = $.extend(defaults, options);
// création d'une liste
function createList(f){
// créer la première zone, affichant l'option sélectionnée
var cell = $('<div class="dropdownCell">' + opts.title + '</div>');
// créer la seconde zone, affichant toutes les options
var dropdown = $('<div class="dropdownPanel"></div>');
$(this).find("li").each(function(){
dropdown.append($('<div class="dropdownOpt"></div>')
.click(onSelect)
.attr("value", $(this).attr("value"))
.append($(this).html())
.hover(function(){$(this).addClass("dropdownOptSelected");},
function(){$(this).removeClass("dropdownOptSelected");})
);
});
// on masque la zone déroulante
dropdown.hide();
$.data(cell, "visible", false);
// on remplace la balise ul par notre liste personnalisée
$(this).after(dropdown);
$(this).after(cell);
$(this).remove();
// on positionne l'évènement de déroulage de la liste
cell.click(function(){
// si la liste est déroulée
if ($.data(cell, "visible")){
dropdown.slideUp("fast");
$.data(cell, "visible", false);
}else{
dropdown.slideDown("fast");
$.data(cell, "visible", true);
}
});
// fonction appelée à chaque sélection d'un élément
function onSelect(){
cell.html($(this).html());
cell.attr("value", $(this).attr("value"));
dropdown.slideUp("fast");
$.data(cell, "visible", false);
// appel d'une fonction personnalisée
if (opts.selectEvent)
opts.selectEvent($(this));
}
}
// création d'une liste déroulante personnalisée pour tous les éléments de l'objet jQuery
$(this).each(createList);
// interface fluide
return $(this);
};
})(jQuery);<ul>
<li value="1"><img src="germany.png" alt="Allemagne" />Allemagne</li>
<li value="2"><img src="belgium.png" alt="Belgique" />Belgique</li>
<li value="3"><img src="spain.png" alt="Espagne" />Espagne</li>
<li value="4"><img src="france.png" alt="France" />France</li>
<li value="5"><img src="italy.png" alt="Italie" />Italie</li>
<li value="6"><img src="switzerland.png" alt="Suisse" />Suisse</li>
</ul>
<script type="text/javascript">
function f(){
alert('clic');
}
$("ul").customDropDown({title:"Pays", selectEvent:f});
</script>
/* la zone affichant l'option sélectionnée */
.dropdownCell{
border : 1px solid #bbb;
width: 150px;
height: 23px;
cursor: pointer;
font-family: arial;
font-size: 10pt;
max-height: 23px;
background: transparent url('arrow.gif') right top no-repeat;
}
.dropdownCell img{
margin : 0px 3px 0px 3px;
vertical-align: middle;
width: 24px;
}
.dropdownPanel{
border : 1px solid #bbb;
width: 150px;
position: absolute;
}
.dropdownOpt{
background-color: #fff;
cursor: pointer;
font-family: arial;
font-size: 10pt;
}
.dropdownOpt img{
margin : 0px 3px 0px 3px;
vertical-align: middle;
width: 24px;
}
.dropdownOptSelected{
background-color: #ccc;
}
| Pas de commentaire pour ce tutorial. |
Vous devez vous être connecté pour poster des commentaires