jquery.select.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. ;(function($){
  2. $.fn.formSelect=function(options){
  3. var defaultsettings= {
  4. defaultText:"-请选择-",
  5. jsonData:""
  6. };
  7. var opts=$.extend(defaultsettings, options);
  8. this.find('.cus-sel-chosed-txt').text(opts.defaultText);
  9. return this.each(function(){
  10. var _this=$(this),tempStr='';
  11. if(opts.jsonData) {
  12. for(var key in opts.jsonData){
  13. tempStr+='<li><a href="javascript:;" data-value="'+key+'">'+opts.jsonData[key]+'</a></li>';
  14. }
  15. _this.children('.cus-sel-list').children('ul').append(tempStr);
  16. }
  17. _this.find(".cus-sel-chosed").live("click", function () {
  18. $(".cus-sel").removeClass("active");
  19. $(".cus-sel-list").hide();
  20. $(this).parent(".cus-sel").addClass("active");
  21. $(this).siblings('.cus-sel-list').slideDown("fast");
  22. });
  23. _this.children(".cus-sel-list").delegate("a", "click", function () {
  24. $(this).closest(".cus-sel").removeClass("active");
  25. $(this).closest(".cus-sel-list").siblings(".cus-sel-chosed").find(".cus-sel-chosed-txt").text($(this).text()).attr("data-value", $(this).attr("data-value"));
  26. $(this).closest(".cus-sel-list").slideUp("fast");
  27. return false;
  28. });
  29. $("html,body").click(function (e) {
  30. var target = e.target;
  31. if ($(target).parents(".cus-sel").length == 0) {
  32. $(".cus-sel").removeClass("active"); $(".cus-sel-list").hide();
  33. }
  34. });
  35. });
  36. }
  37. })(jQuery);