maintain.js 2.31 KB
define(function( require, exports, module ) {

  var _Chk = require('F_checkbox');
  var _Pickcity = require('pickcity');
  require('anonyparker');

  var _p = new _Pickcity();
  _p.init();

  anonyparker.listen('chk', function(){
    _Chk().init();
  });

  anonyparker.apply('chk');

  anonyparker.listen('fancy', function(){
    $(".act-newline").fancybox({
      scrolling: 'visible'
    });

    //缓存需要使用的元素
    //使用全局变量获取目标UL
    var fancyul = $("#fancy-chg ul");
    var fancylis = fancyul.find("li");
    var destul;

    //遍历所有弹框按钮
    $(".act-chg").each(function(){
      var _this = this;
      
      $(_this).fancybox({
        //在弹框加载完毕之前异步获取当前链接关系的城市列表
        beforeLoad: function(){
          var unit = $(_this).attr('unit').split(/[,]/);
          destul = $(_this).parent().prev().find("ul");

          //url, [指定加载列表的UL], [过滤字符串]
          _p.getCityUnit(
            $(_this).attr('url'),
            [fancyul],
            unit
          );
        }
      });
    });

    //点击确更改原有的内容
    //并依据选择的城市 重新设置过滤字符串
    $("#changeline").on({
      click: function(){
        $.fancybox.close();

        var cache = [];
        //每次都清空原来的UL的内容
        destul.html('');

        fancyul.find("li").each(function(){
          if ($(this).find("input")[0].checked){
            destul.append(this);
            cache.push($(this).attr('regionId'));
            $(this).find("input").remove();
          }
        });

        //重新设置过滤字符串
        destul.parent().next().find(".act-chg").attr('unit', cache.join());
      }
    });
  });

  anonyparker.apply('fancy');

  anonyparker.listen('click', function(){
    $(".slidearrow").on({
      click: function(){
        if ($(this).hasClass('arrowon')){
          $(this).removeClass('arrowon')
          $(this).parent().parent().next().animate({'opacity': 0}, 'fast', function(){
            $(this).hide();
          });
        }else {
          $(this).addClass('arrowon')
          $(this).parent().parent().next().animate({'opacity': 1}, 'fast', function(){
            $(this).show();
          });
        };
      }
    })
  });

  anonyparker.apply('click');


});