common.js 6.58 KB
define(function( require, exports, module ) {
/*
	引入包
*/
	var _Base = require( 'base' ),
	_Defval = require( 'defval' ),
	_Jselect = require( 'jselect' ),
	_Scrollfixed = require( 'scrollfixed' ),
	_Event = require( 'event' ),
	_Qsearch = require( 'qsearch' ),
    _Simpletree = require( 'simpleTree' );
	
require( 'validate.extend' );
require( 'mousewheel' );
require( 'fancybox' );

	$(function(){
		_Base.lazyload($("img"), 0);
		//溢出页面加载loading
		if( $( '#s-page-loading' ).length > 0 ){
			$( '#s-page-loading' ).remove();
		}
		
		//文本框默认提示
		$( 'input[defval], textarea[defval]' ).each(function() {
			new _Defval( this , {
				fontColor:'#ccc'
			});
		});

		//文本框搜索下拉
		if( $(".search-bar input[type='text']").length > 0 ){
			$(".search-bar input[type='text']").each(function(){
				var self = this;
				new _Qsearch( this, {
					form: $(this).parents('.search-bar').find('form'),
					submitLocked: false,
					loading		: '',
					ajaxUrl		: 'http://search.nong12.com/newTip.html?callFn=?',
					searchBefore : function(){
						var type = $('.goods').attr('name');
						type = type == 'goods'?'STG' : 'STORE';
						return '&type='+type;
					}
				});
			});
		}
		
		//下拉列表模拟
		if( $( '.s-select' ).length > 0 ){
			$( '.s-select' ).each( function(){
				new _Jselect( this , {} );
			});
		}

		//表单验证
		if( $( '.s-validate' ).length > 0 ){
			require.async(['validate.extend'], function() {
				$( '.s-validate' ).each( function(){
					$( this ).validate({
						ignore:'.ignore'
					});
				});
			});
		}

	    //搜索框操作
	    //选择店铺商品
	    if ( $( ".search-bar" ).length > 0 ){
		    $(".cat p").click(function(){
		    	if( $(".cat").hasClass("choose")){
		    		$(".cat").removeClass("choose");
		    	}else{
		    		$(".cat").addClass("choose");
		    	}
		        
		        //return false;
		    });
		    //确认搜索分类选择
		    $(".cat li").live("click", function(){
	       	 	$(".cat").removeClass("choose");
	            var text = $(this).find("span").html();
	            $(".cat p").html($(this).find("span").html() + ' <span class="icon-more"></span>');
	            $(".cat ul").html('');
	            if(text != "店铺"){
					$(".searchForm").attr('action','http://search.nong12.com/goods.html');
	           	 $('.goods').attr('name','goods');
	                $(".cat ul").append('<li ><span>产品</span></li><li class="more"><span>店铺</span></li>');
	            }else{
					$(".searchForm").attr('action','http://search.nong12.com/shop.html');
	           	 $('.goods').attr('name','store');
	                $(".cat ul").append('<li><span>店铺</span></li><li class="more"><span>产品</span></li>');
	            };
	       });
		    //搜索更多历史记录
		    $(".search-bar input").focus(function(){
		        $(this).parents().next().stop().slideDown(200);
		    });
		    $(".search-list a").live("click", function(){
		        $(".search-list").stop().slideUp(200);
		        $(".search-bar input").val($(this).html());
		        return false;
		    });
		    $(document).bind("click",function(e){
		        var target  = $(e.target);
		        if(target.closest(".search-bar .cat").length == 0){
		            $(".search-bar .cat").removeClass("choose");
		        }
		    })

	    }

	    //多级列表
	    if ( $( ".menutree" ).length > 0 ){

		    $( '.menutree' ).each(function(){
			    new _Simpletree( this , {
				    handler: ">div",//操作对象
				    toggleClass: "title-selected",//class切换
				    showtarget: ".show-menu",//展示的子菜单对象
				    currentClass: ".on"//子菜单的选中状态
			    });
	        });

	    }


	    //弹层层
	    $( '.s-fancybox' ).fancybox({
	    	openEffect:'elastic',
			closeEffect:'elastic',
			scrolling:'visible'
	    });
	});
	
	//简易下来菜单显示
    if ($(".J-select-operation").length){

      $(".J-select-operation").each(function(){
        var _this = this;
        var gather = $(this).find("option"), ul;
        var name = {
          show: 'J-select-show',
          color: 'ora',
          link: 'J-look',
          first: 'J-first',
          url: 'data-url',
          click: 'data-onclick'
        };

        $('<div class="'+ name.show +'"><ul></ul></div>').insertAfter( $(this) );

        ul = $(this).next().find("ul");

        for (var i=0,l=gather.length; i<l; i++){
          var _clickEvent = gather.eq(i).attr(name.click);
          var _href = gather.eq(i).attr(name.url);

          ul.append(
            '<li>' +
              '<a ' +
              (!_href ? "" : 'href="'+ _href +'" ') +
              (!_clickEvent ? "" : 'onclick="'+ _clickEvent +'" ') +
              'class="'+ name.link +
              '">'+ gather.eq(i).html() +
              '</a>' +
            '</li>'
          );
        };

        ul.find('a').eq(0).attr('class',name.color).append('<i class="J-down"></i>');
        ul.find('li').eq(0).addClass(name.first);

        $(this).next().append(
          '<a ' +
          //'href="'+ gather.eq(0).attr(name.url) +'" ' +
          'class="'+ name.color +
          '">'+ gather.eq(0).html() +
          '<i class="J-down"></i></a>'
        );

        $(this).next().find('>a').on({
          mouseenter: function(){
            ul.css({width: parseInt($(this).width()) + 40});
            ul.show();
          }
        });

        ul.on({
          mouseleave: function(){
            $(this).hide();
          }
        });

        ul.find('li').on({
          click: function(){
            $(_this).find("option").removeAttr('selected');
            $(_this).find("option").eq( $(this).index() ).attr('selected','selected');
          }
        })

      });

    };

    // 简易模拟checkbox
   /*  if ($(".simu-checkbox").length) { */
      // var checkboxs = $(".simu-checkbox");
      // var checkinputs = $(".simu-checkbox >input");
      // var _tpl = '<span class="bechecked"></span>';

      // function _trueOrFalse (target) {
        // return function (ev) {
          // ev.preventDefault();

          // if (target.checked) {
            // $(this).removeClass('on');
            // target.checked = false;
          // }else {
            // $(this).addClass('on');
            // target.checked = true;
          // };
        // }
      // };

      // for ( var i = 0, l = checkboxs.length; i < l; i++ ) {
        // if (checkinputs[i].checked) {
          // $(checkboxs[i]).append($(_tpl)).addClass('on');
        // }else {
          // $(checkboxs[i]).append($(_tpl));
        // };

        // $(checkboxs[i]).on({
          // click: _trueOrFalse(checkinputs[i])
        // })
      // };
    // };

});