$("#element-id").voter();
In order to achieve this we will make the changes to the matched elements in our plugin as follows.return this.each(function(){
$(this).addClass("voter-wrapper");
var inner=$('<div>'+settings.start+'</div>');
var up = $('<div>+</div>').addClass('voter-action');
up.click(function(){
if(parseInt(inner.html())<settings.max){
inner.html(parseInt(inner.html())+1);
}
});
$(this).append(up);
$(this).append(inner);
var down = $('<div>-</div>').addClass('voter-action');
down.click(function(){
if(parseInt(inner.html())>settings.min){
inner.html(parseInt(inner.html())-1);
}
});
$(this).append(down);
});
Let us take a look at the code line by line.$(this).addClass("voter-wrapper");
This line will add the class "voter-wrapper" to the matched element. That css class will define the styles related to the whole element.var inner=$('<div>'+settings.start+'</div>');
This line will create a new html div element and assign the value to the variable 'inner'.var up = $('<div>+</div>').addClass('voter-action');
up.click(function(){
if(parseInt(inner.html())<settings.max){
inner.html(parseInt(inner.html())+1);
}
});
$(this).append(up);
This above code will create a new html element containing the "+" mark that will be used to vote up. Then we assign it an onclick handler and append it to our element. $(this).append(inner);The above line will append the 'inner' element that we created above. It element will show the vote count.
The code
var down = $('<div>-</div>').addClass('voter-action');
down.click(function(){
if(parseInt(inner.html())>settings.min){
inner.html(parseInt(inner.html())-1);
}
});
$(this).append(down);
will create and append the element that will be used to vote down.The full code of our plugin is given below.
(function($){
$.fn.voter = function(options){
var settings = {
start:0,
max:10,
min:0
};
if(options){
$.extend( settings, options );
}
return this.each(function(){
$(this).addClass("voter-wrapper");
var inner=$('<div>'+settings.start+'</div>');
var up = $('<div>+</div>').addClass('voter-action');
up.click(function(){
if(parseInt(inner.html())<settings.max){
inner.html(parseInt(inner.html())+1);
}
});
$(this).append(up);
$(this).append(inner);
var down = $('<div>-</div>').addClass('voter-action');
down.click(function(){
if(parseInt(inner.html())>settings.min){
inner.html(parseInt(inner.html())-1);
}
});
$(this).append(down);
});
};
}
)(jQuery);
Now we can call the plugin as follows.$("#voter").voter();
A demo and code is available at this jsFiddle.
No comments:
Post a Comment