/* ============================================================ * 地区无限 * ============================================================ */ !function($) { var backdropLayerTpl = ''; var htmlLayerTpl = [''; // 初始化 prepareModal(titleValue, multipleValue, maximumValue); // 模板写入 $('.J_modal_content').html(htmlCategory); $('.J_btn_yes').attr('id', 'J_btn_yes_city'); // 显示并调整位置 $('.modal_dialog').css({ width: widthValue + 'px', left: ($(window).width() - widthValue) / 2, top: ($(window).height() - $('.modal_dialog').outerHeight()) / 2 + $(document).scrollTop() }) $('.modal_backdrop').addClass('in'); if (isSpell) { var cateParentHtml = ''; $('#selectCategoryBox').html(cateParentHtml); function getParentId(id) { $.each(QS_city_spell_parent, function (index, val) { var parentValArr = val.split(','); if (QS_city_spell[parentValArr[0]]) { var subArr = QS_city_spell[parentValArr[0]].split('`'); getPid(id, subArr, parentValArr[0]); } }) return ids; } function getPid(id, subArr, parentVal) { for (var j = 0; j < subArr.length; j++) { if (id == subArr[j].split(',')[0]) { if (ids) { ids = parentVal + '.' + ids; } else { ids = parentVal; } } else { if (QS_city_spell[subArr[j].split(',')[0]]) { var ssubArr = QS_city_spell[subArr[j].split(',')[0]].split('`'); getPid(id, ssubArr, parentVal + '.' + subArr[j].split(',')[0]); } } } } // 默认值和需要恢复的处理 if (recoverVal.length) { ids = ''; var firstKeepHtml = getParentId(recoverVal); if (firstKeepHtml) { var firstHtml = firstKeepHtml + '.' + recoverVal; var firstKeepArr = firstHtml.toString().split('.'); getSubCateHtml(firstKeepArr[0],firstKeepArr); for (var i = 0; i < $('.categorySelect').length; i++) { for (var j = 0; j < firstKeepArr.length; j++) { $('.categorySelect').eq(i).find('option').each(function(index, el) { if ($(this).val() == firstKeepArr[j]) { $(this).prop('selected', !0); } }) } recoverCheckbox() } } else { $('.categorySelect').eq(0).find('option').each(function(index, el) { if ($(this).val() == recoverVal) { $(this).prop('selected', !0); } }) if (getSubCateLevel(recoverVal,'')) { getSubCateHtml(recoverVal,''); } } } else { if (defaultCitySpell) { var firstKeepArr = defaultCitySpell.split('.'); getSubCateHtml(firstKeepArr[0], ''); for (var i = 0; i < $('.categorySelect').length; i++) { for (var j = 0; j < firstKeepArr.length; j++) { $('.categorySelect').eq(i).find('option').each(function(index, el) { if ($(this).val() == firstKeepArr[j]) { $(this).prop('selected', !0); } }) } } } else { getSubCateHtml($('.categorySelect').eq(0).find('option:selected').val(),''); $('.categorySelect').eq(0).find('option').each(function(index, el) { if ($(this).val() == recoverVal) { $(this).prop('selected', !0); } }) } } // 复原checkbox选中 function recoverCheckbox() { $('.checkOption').each(function(index, el) { if ($(this).val() ==$("#recoverSearchCityModalCode3").val()){ $(this).closest('label').addClass('selected'); $(this).prop('checked', !0); } }) } // 父级选择 $(document).off('change','.categorySelect').on('change','.categorySelect', function() { if (!($(this).find('option:selected').hasClass('nolimit'))) { var currentVal = $(this).val(); var currentText = $(this).find('option:selected').text(); $(this).nextAll().remove(); $('#checkboxCategoryBox').empty(); getSubCateHtml(currentVal, ''); } }) // 生成列表 function getSubCateHtml(currendId, dataArr) { var subCateLevelArr = new Array(); if (dataArr.length) { subCateLevelArr = dataArr; } else { subCateLevelArr = getSubCateLevel(currendId,'').split('.'); } var cateSubHtml = ''; for(i = 0;i < subCateLevelArr.length-1; i++) { cateSubHtml += ''; } $('#selectCategoryBox').append(cateSubHtml); var cateChekcId = subCateLevelArr[subCateLevelArr.length-1]; var checkName = $('.categorySelect').eq($('.categorySelect').length-1).find('option:selected').text(); if (getSubCateLevel(currendId,'')) { // $('#checkboxCategoryBox').html(checkboxFactory(cateChekcId, getNameNew(cateChekcId))); $('#checkboxCategoryBox').html(checkboxFactory(cateChekcId, checkName)); } else { $('#checkboxCategoryBox').html(checkboxFactory(currendId, getNameNew(currendId))); } } // 生成checkbox function checkboxFactory(id, title) { var checkboxHtml = '
'; checkboxHtml += '
' + title + '
'; checkboxHtml += '
'; checkboxHtml += '
'; return checkboxHtml; } // 获得级数 function getSubCateLevel(id, arr) { if (QS_city_spell[id]) { var levelIdArr = QS_city_spell[id].split('`'); if (arr.length) { arr = arr + '.' + id; } else { arr = id; } return getSubCateLevel(levelIdArr[0].split(',')[0],arr); } else { return arr; } } // 根据id获取对应文字 function getNameNew(id) { var name = ''; $.each(QS_city_spell_parent, function (index, val) { var parentValArr = val.split(','); if (QS_city_spell[parentValArr[0]]) { var subArr = QS_city_spell[parentValArr[0]].split('`'); for (var j = 0; j < subArr.length; j++) { if (id == subArr[j].split(',')[0]) { name = subArr[j].split(',')[1]; } } } }) if (!name) { $.each(QS_city_spell_parent, function (index, val) { var parentValArr = val.split(','); if (id == parentValArr[0]) { name = parentValArr[1]; } }) } return name; } } else { // id var cateParentHtml = ''; $('#selectCategoryBox').html(cateParentHtml); function getParentId2(id) { for (var i = 0; i < QS_city.length; i++) { if (QS_city[i]) { var subArr = QS_city[i].split('`'); for (var j = 0; j < subArr.length; j++) { if (id == subArr[j].split(',')[0]) { if (ids) { ids = i + '.' + ids; } else { ids = i; } getParentId2(i); } } } } return ids; } // 默认值和需要恢复的处理 if (recoverVal.length) { ids = ''; var firstKeepHtml = getParentId2(recoverVal); if (firstKeepHtml) { var firstHtml = firstKeepHtml + '.' + recoverVal; var firstKeepArr = firstHtml.toString().split('.'); getSubCateHtml2(firstKeepArr[0],firstKeepArr); for (var i = 0; i < $('.categorySelect').length; i++) { for (var j = 0; j < firstKeepArr.length; j++) { $('.categorySelect').eq(i).find('option').each(function(index, el) { if ($(this).val() == firstKeepArr[j]) { $(this).prop('selected', !0); } }) } } } else { $('.categorySelect').eq(0).find('option').each(function(index, el) { if ($(this).val() == recoverVal) { $(this).prop('selected', !0); } }) if (getSubCateLevel2(recoverVal,'')) { getSubCateHtml2(recoverVal,''); } } } else { if (defaultCity) { var firstKeepArr = defaultCity.split('.'); getSubCateHtml2(firstKeepArr[0], ''); for (var i = 0; i < $('.categorySelect').length; i++) { for (var j = 0; j < firstKeepArr.length; j++) { $('.categorySelect').eq(i).find('option').each(function(index, el) { if ($(this).val() == firstKeepArr[j]) { $(this).prop('selected', !0); } }) } } } else { getSubCateHtml2($('.categorySelect').eq(0).find('option:selected').val(),''); $('.categorySelect').eq(0).find('option').each(function(index, el) { if ($(this).val() == recoverVal) { $(this).prop('selected', !0); } }) } } // 父级选择 $(document).off('change','.categorySelect').on('change','.categorySelect', function() { /*if ($.browser.msie) { }*/ if (!($(this).find('option:selected').hasClass('nolimit'))) { var currentVal = $(this).val(); var currentText = $(this).find('option:selected').text(); $(this).nextAll().remove(); $('#checkboxCategoryBox').empty(); getSubCateHtml2(currentVal, ''); } }) // 生成列表 function getSubCateHtml2(currendId, dataArr) { var subCateLevelArr = new Array(); if (dataArr.length) { subCateLevelArr = dataArr; } else { subCateLevelArr = getSubCateLevel2(currendId,'').split('.'); } var cateSubHtml = ''; for(i = 0;i < subCateLevelArr.length-1; i++) { cateSubHtml += ''; } $('#selectCategoryBox').append(cateSubHtml); var cateChekcId = subCateLevelArr[subCateLevelArr.length-1]; var checkName = $('.categorySelect').eq($('.categorySelect').length-1).find('option:selected').text(); if (getSubCateLevel2(currendId,'')) { // $('#checkboxCategoryBox').html(checkboxFactory2(cateChekcId, getNameNew(cateChekcId))); $('#checkboxCategoryBox').html(checkboxFactory2(cateChekcId, checkName)); } else { $('#checkboxCategoryBox').html(checkboxFactory2(currendId, getNameNew(currendId))); } } // 生成checkbox function checkboxFactory2(id, title) { var checkboxHtml = '
'; checkboxHtml += '
' + title + '
'; checkboxHtml += '
'; checkboxHtml += '
'; return checkboxHtml; } // 根据id获取对应文字 function getNameNew(id) { var name = ''; for (var i = 0; i < QS_city.length; i++) { if (QS_city[i]) { var iArr = QS_city[i].split('`'); for (var j = 0; j < iArr.length; j++) { if (id == iArr[j].split(',')[0]) { name = iArr[j].split(',')[1]; } } } } if (!name) { // 只有一级 for (var i = 0; i < QS_city_parent.length; i++) { if (id == QS_city_parent[i].split(',')[0]) { name = QS_city_parent[i].split(',')[1]; } } } return name; } // 获得级数 function getSubCateLevel2(id, arr) { if (QS_city[id]) { var levelIdArr = QS_city[id].split('`'); if (arr.length) { arr = arr + '.' + id; } else { arr = id; } return getSubCateLevel2(levelIdArr[0].split(',')[0],arr); } else { return arr; } } } }) //最后一级点击 $(document).off("click",'.checkOption').on('click','.checkOption', function() { var currentVal3 = $(this).val(); var currentText = $(this).data("text"); var currentVal = $('.categorySelect').eq($('.categorySelect').length-1).val(); $('#searchCityModalCode').val(currentVal3); $('#recoverSearchCityModalCode').val(currentVal); $('#recoverSearchCityModalCode3').val(currentVal3); $('[data-toggle="funCityModal"]').text(currentText); $('[data-toggle="funCityModal"]').attr('title', currentText); removeModal(); }) // 确定 $(document).off('click','#J_btn_yes_city').on('click','#J_btn_yes_city', function() { var currentVal = $('.categorySelect:last').find('option:selected').val(); var currentText = $('.categorySelect:last').find('option:selected').text(); if ($('.categorySelect:last').find('option:selected').hasClass('nolimit')) { currentText = $('.categorySelect:last').find('option:selected').attr('title'); } $('#searchCityModalCode').val(currentVal); $('#recoverSearchCityModalCode').val(currentVal); $('[data-toggle="funCityModal"]').text(currentText); $('[data-toggle="funCityModal"]').attr('title', currentText); removeModal(); }) // 初始化程序 function prepareModal(titleValue, multipleValue, maximumValue) { var ie = !-[1, ]; var ie6 = !-[1, ] && !window.XMLHttpRequest; $(backdropLayerTpl).appendTo($(document.body)); if (ie6) { $('.modal_backdrop').css("height", $(document).height()); } $(htmlLayerTpl).appendTo($(document.body)); $('.J_modal_title').text(titleValue); multipleValue = true; if (multipleValue) { //$('.J_modal_max').text('(最多选择' + maximumValue + '个)'); } if (!multipleValue) { $('.modal_footer').hide(); } $(".J_hoverbut").hover(function() { $(this).addClass("hover"); }, function() { $(this).removeClass("hover"); }) // 可拖动 var newObj = $('.modal_dialog'); var newTit = newObj.find(".modal_header"); newTit.mousedown(function(e) { var offset = newObj.offset(); var x = e.pageX - offset.left; var y = e.pageY - offset.top; $(document).bind('mousemove', function(ev) { newObj.bind('selectstart', function() { return false; }) var newx = ev.pageX - x; var newy = ev.pageY - y; newObj.css({ 'left': newx + "px", 'top': newy + "px" }) }) }) $(document).mouseup(function() { $(this).unbind("mousemove"); }) if (ie) { if (window.PIE) { $('.pie_about').each(function() { PIE.attach(this); }) } } } // 关闭 $(document).on('click','.J_dismiss_modal', function() { removeModal(); }) // esc关闭 $(document).on('keydown', function(event) { if (event.keyCode == 27) { removeModal(); } }) //关闭弹窗的公共方法 function removeModal() { setTimeout(function() { $('.modal_backdrop').remove(); $('.modal').remove(); }, 50) } }(window.jQuery);