-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathselectField.min.js
More file actions
1 lines (1 loc) · 1.13 KB
/
selectField.min.js
File metadata and controls
1 lines (1 loc) · 1.13 KB
1
$.fn.selectField=function(){"use strict";return this.each(function(){var a=$(this),b="";if(!a.attr("data-assigned")){a.attr("data-assigned","1");var c=a.find(".selected");c.length||(c=a.children().first()),a.attr("data-value",c.attr("data-value")),a.prepend('<div class="right"><i class="fa fa-chevron-down"></i></div>');var d=$(a.find(".right i")),e=$('<div class="select-dropdown hidden"></div>');e.css("width",a.width()+2+"px"),a.children().each(function(){var a=$(this);a.hasClass("option")&&(b+='<a href="javascript:void(0)" data-value="'+a.attr("data-value")+'">'+a.html()+"</a>")}),e.html(b),a.after(e);var f=function(){e.removeClass("hidden"),d.removeClass("fa-chevron-down").addClass("fa-chevron-up")},g=function(){e.addClass("hidden"),d.removeClass("fa-chevron-up").addClass("fa-chevron-down")};a.on("click",function(a){e.hasClass("hidden")?f():g(),a.stopPropagation(),$("body").off("click"),$("body").on("click",g)}),e.on("click",function(b){g();var c=$(b.target).attr("data-value");a.find(".selected").removeClass("selected"),a.find('[data-value="'+c+'"]').addClass("selected"),a.attr("data-value",c),a.trigger("change",c),b.stopPropagation()})}})};