jquery.user.city.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  1. /* ============================================================
  2. * 地区选择
  3. * ============================================================ */
  4. !function($) {
  5. var backdropLayerTpl = '<div class="modal_backdrop fade"></div>';
  6. var htmlLayerTpl = ['<div class="modal qs-category-unlimited">', '<div class="modal_dialog">', '<div class="modal_content pie_about">', '<div class="modal_header">', '<span class="title J_modal_title"></span>', '<span class="max_remind J_modal_max"></span>', '<a href="javascript:;" class="close J_dismiss_modal"></a>', '</div>', '<div class="modal_body pd0">', '<div class="listed_group" id="J_listed_group">', '<div class="left_text">已选择:</div>', '<div class="center_text" id="J_listed_content"></div>', '<a href="javascript:;" class="right_text" id="J_listed_clear">清空</a>', '<div class="clear"></div>', '</div>', '<div class="J_modal_content"></div>', '</div>', '<div class="modal_footer">', '<div class="res_add_but">', '<div class="butlist">', '<div class="btn_blue J_hoverbut btn_100_38 J_btn_yes">确 定</div>', '</div>', '<div class="butlist">', '<div class="btn_lightgray J_hoverbut btn_100_38 J_dismiss_modal J_btn_cancel">取 消</div>', '</div>', '<div class="clear"></div>', '</div>', '</div>', '<input type="hidden" class="J_btnload" />', '</div>', '</div>', '</div>'].join('');
  7. // 处理需要复原的数据
  8. $('.J_resultcode_city').each(function(){
  9. if ($(this).val().length) {
  10. var codeArr = $(this).val().split(',');
  11. // var ciSub = subsite_level-1;
  12. var newCodeArr = new Array();
  13. for (var i = 0; i < codeArr.length; i++) {
  14. var sArr = codeArr[i].split('.');
  15. if (eval(sArr[sArr.length-1])) {
  16. newCodeArr.push(sArr[sArr.length-1]);
  17. } else {
  18. if (eval(sArr[sArr.length-2])) {
  19. newCodeArr.push(sArr[sArr.length-2]);
  20. } else {
  21. newCodeArr.push(sArr[sArr.length-3]);
  22. }
  23. }
  24. }
  25. $(this).val(newCodeArr);
  26. }
  27. })
  28. /*if ($('.J_resultcode_city').val().length) {
  29. var codeArr = $('.J_resultcode_city').val().split(',');
  30. // var ciSub = subsite_level-1;
  31. var newCodeArr = new Array();
  32. for (var i = 0; i < codeArr.length; i++) {
  33. var sArr = codeArr[i].split('.');
  34. if (eval(sArr[sArr.length-1])) {
  35. newCodeArr.push(sArr[sArr.length-1]);
  36. } else {
  37. if (eval(sArr[sArr.length-2])) {
  38. newCodeArr.push(sArr[sArr.length-2]);
  39. } else {
  40. newCodeArr.push(sArr[sArr.length-3]);
  41. }
  42. }
  43. }
  44. $('.J_resultcode_city').val(newCodeArr);
  45. }*/
  46. // 点击
  47. $('[data-toggle="funCityModal"]').on('click', function() {
  48. var that = $(this);
  49. if (QS_city_parent.length <= 0) {
  50. //console.log('地区分类出错!!!');
  51. return false;
  52. }
  53. var titleValue = $(this).data('title');
  54. var multipleValue = eval($(this).data('multiple'));
  55. var maximumValue = eval($(this).data('maximum'));
  56. var widthValue = eval($(this).data('width'));
  57. var getPoint = eval($(this).data('getpoint'));
  58. var defaultCity = default_district;
  59. // var defaultCity = "9.107";
  60. var htmlCategory = '';
  61. //var cateLevel = default_level;
  62. var cateLevel = 2;
  63. var checkedPool = new Array();
  64. var defaultKeyArr = '';
  65. var recoverVal = $(this).find('.J_resultcode_city').val();
  66. var recoverKeepVal = that.find('.J_resultcode_city').attr('keep');
  67. htmlCategory += '<div class="selected-group J_selected_group"><div class="selected-box"><div class="s-l-txt">已选择:</div><div class="p-cate J_cate_box"></div><div class="btn-some" id="J_clear_all"><a href="javascript:;">清空</a></div></div></div>';
  68. htmlCategory += '<div class="category-select"><div class="cs-left"><span>选择地区</span></div><div class="cs-right" id="selectCategoryBox">';
  69. htmlCategory += '<div class="clear"></div></div><div class="clear"></div></div>';
  70. htmlCategory += '<div class="cate-type" id="checkboxCategoryBox">';
  71. htmlCategory += '<div class="clear"></div></div>';
  72. htmlCategory += '</div>';
  73. // 初始化
  74. prepareModal(titleValue, multipleValue, maximumValue);
  75. // 模板写入
  76. $('.J_modal_content').html(htmlCategory);
  77. $('.J_btn_yes').attr('id', 'J_btn_yes_city');
  78. // 显示并调整位置
  79. $('.modal_dialog').css({
  80. width: widthValue + 'px',
  81. left: ($(window).width() - widthValue) / 2,
  82. top: ($(window).height() - $('.modal_dialog').outerHeight()) / 2 + $(document).scrollTop()
  83. })
  84. $('.modal_backdrop').addClass('in');
  85. if (cateLevel > 1) {
  86. // 地区级数大于一级
  87. var cateParentHtml = '<select class="categorySelect">';
  88. for (var i = 0; i < QS_city_parent.length; i++) {
  89. cateParentHtml += '<option value="' + QS_city_parent[i].split(',')[0] + '">' + QS_city_parent[i].split(',')[1] + '</option>';
  90. }
  91. cateParentHtml += '</select>';
  92. $('#selectCategoryBox').html(cateParentHtml);
  93. // 默认值和需要恢复的处理
  94. if (recoverVal.length) {
  95. var recoverKeepArr = recoverKeepVal.split(',');
  96. var firstKeppArr = recoverKeepArr[0].split('.');
  97. var subCateLevelArr = new Array();
  98. if (firstKeppArr.length > 1) {
  99. subCateLevelArr = firstKeppArr.slice(0, firstKeppArr.length-1);
  100. getSubCateHtml(firstKeppArr[0],subCateLevelArr);
  101. for (var i = 0; i < $('.categorySelect').length; i++) {
  102. for (var j = 0; j < subCateLevelArr.length; j++) {
  103. $('.categorySelect').eq(i).find('option').each(function(index, el) {
  104. if ($(this).val() == subCateLevelArr[j]) {
  105. $(this).prop('selected', !0);
  106. }
  107. })
  108. }
  109. }
  110. setCheckCode();
  111. setPool(recoverKeepVal.split(','), 0);
  112. } else {
  113. $('.categorySelect').eq(0).find('option').each(function(index, el) {
  114. if ($(this).val() == firstKeppArr) {
  115. $(this).prop('selected', !0);
  116. }
  117. })
  118. getSubCateHtml(firstKeppArr[0],firstKeppArr);
  119. setCheckCode();
  120. setPool(recoverKeepVal.split(','), 1);
  121. }
  122. } else {
  123. if (defaultCity) {
  124. // 默认地区
  125. var firstKeppArr = defaultCity.toString().split('.');
  126. if (firstKeppArr.length > 1) {
  127. getSubCateHtml(firstKeppArr[0],'');
  128. for (var i = 0; i < $('.categorySelect').length; i++) {
  129. for (var j = 0; j < firstKeppArr.length; j++) {
  130. $('.categorySelect').eq(i).find('option').each(function(index, el) {
  131. if ($(this).val() == firstKeppArr[j]) {
  132. $(this).prop('selected', !0);
  133. }
  134. })
  135. }
  136. }
  137. setCheckCode();
  138. } else {
  139. $('.categorySelect').eq(0).find('option').each(function(index, el) {
  140. if ($(this).val() == firstKeppArr) {
  141. $(this).prop('selected', !0);
  142. }
  143. })
  144. getSubCateHtml(firstKeppArr[0],'');
  145. setCheckCode();
  146. }
  147. } else {
  148. getSubCateHtml($('.categorySelect').eq(0).find('option:selected').val(),'');
  149. setCheckCode();
  150. }
  151. }
  152. } else {
  153. // 只有一级
  154. $('.category-select').remove();
  155. var checkboxHtml = '<div class="dl">';
  156. checkboxHtml += '<div class="dt"><span>选择地区</span></div>';
  157. checkboxHtml += '<div class="dd"><ul>';
  158. for (var i = 0; i < QS_city_parent.length; i++) {
  159. var arrP = QS_city_parent[i].split(',');
  160. checkboxHtml += '<li><div class="one-select"><label><input class="check-box checkOption" type="checkbox" data-code="' + arrP[0] + '" data-text="' + arrP[1] + '">' + arrP[1] + '</label></div></li>';
  161. }
  162. checkboxHtml += '</ul></div>';
  163. checkboxHtml += '<div class="clear"></div></div>';
  164. $('#checkboxCategoryBox').html(checkboxHtml);
  165. if (recoverVal.length) {
  166. setPool(recoverVal.split(','), 1);
  167. }
  168. }
  169. // 复原选中和同步
  170. recoverCheckbox();
  171. if (multipleValue) {
  172. syncOptionSelected();
  173. }
  174. // 父级选择
  175. // $('.categorySelect').off().on('change', function() {
  176. $(document).off('change','.categorySelect').on('change','.categorySelect' ,function() {
  177. // if ($.browser.msie) {
  178. //
  179. // }
  180. var currentVal = $(this).val();
  181. $(this).nextAll().remove();
  182. $('#checkboxCategoryBox').empty();
  183. getSubCateHtml(currentVal, '');
  184. setCheckCode();
  185. recoverCheckbox();
  186. })
  187. // 动态替换code
  188. function setCheckCode() {
  189. var checkId = '';
  190. $('.categorySelect').each(function(index, el) {
  191. checkId += $('.categorySelect').eq(index).find('option:selected').val() + '.';
  192. })
  193. $('.checkOption').each(function(index, el) {
  194. if (!$(this).hasClass('noLimit')) {
  195. $(this).data('code', checkId + $(this).data('code'));
  196. } else {
  197. if ($('.categorySelect').length > 1) {
  198. $(this).data('code', checkId + $(this).data('code'));
  199. }
  200. }
  201. })
  202. }
  203. // 设置还原数据
  204. function setPool(poolArr, cateType) {
  205. for (var i = 0; i < poolArr.length; i++) {
  206. var itemName = '';
  207. if (cateType) {
  208. itemName = getName(poolArr[i].split('.')[poolArr[i].split('.').length-2],poolArr[i].split('.')[poolArr[i].split('.').length-1], 1);
  209. } else {
  210. itemName = getName(poolArr[i].split('.')[poolArr[i].split('.').length-2],poolArr[i].split('.')[poolArr[i].split('.').length-1], 0);
  211. }
  212. checkedPool.push(poolArr[i] + '`' + itemName);
  213. }
  214. }
  215. // 设置第一级的选中状态
  216. function setSelected(comparId) {
  217. $('.categorySelect').eq(0).find('option').each(function(index, el) {
  218. if ($(this).val() == comparId) {
  219. $(this).prop('selected', !0);
  220. }
  221. })
  222. }
  223. // 生成列表
  224. function getSubCateHtml(currendId, dataArr) {
  225. var subCateLevelArr = new Array();
  226. if (dataArr.length) {
  227. subCateLevelArr = dataArr;
  228. } else {
  229. subCateLevelArr = getSubCateLevel(currendId,'').split('.');
  230. }
  231. var cateSubHtml = '';
  232. for(i = 0;i < subCateLevelArr.length-1; i++) {
  233. cateSubHtml += '<select class="categorySelect">';
  234. var citySubArr = QS_city[subCateLevelArr[i]].split('`');
  235. for(j = 0;j < citySubArr.length; j++){
  236. cateSubHtml += '<option value="'+citySubArr[j].split(',')[0]+'">'+citySubArr[j].split(',')[1]+'</option>';
  237. }
  238. cateSubHtml += '</select>';
  239. }
  240. $('#selectCategoryBox').append(cateSubHtml);
  241. var cateChekcId = subCateLevelArr[subCateLevelArr.length-1];
  242. var checkName = $('.categorySelect').eq($('.categorySelect').length-1).find('option:selected').text();
  243. if (getSubCateLevel(currendId,'')) {
  244. $('#checkboxCategoryBox').html(checkboxFactory(cateChekcId, getNameNew(cateChekcId)));
  245. } else {
  246. $('#checkboxCategoryBox').html(checkboxFactory(currendId, getNameNew(currendId)));
  247. }
  248. }
  249. // 获得级数
  250. function getSubCateLevel(id, arr) {
  251. if (QS_city[id]) {
  252. var levelIdArr = QS_city[id].split('`');
  253. if (arr.length) {
  254. arr = arr + '.' + id;
  255. } else {
  256. arr = id;
  257. }
  258. return getSubCateLevel(levelIdArr[0].split(',')[0],arr);
  259. } else {
  260. return arr;
  261. }
  262. }
  263. // 最后一级点击
  264. // $('.checkOption').off().on('click', function() {
  265. $(document).off("click",'.checkOption').on('click','.checkOption', function() {
  266. // 多选单选
  267. if (multipleValue) {
  268. var secCity =$(".categorySelect").eq(1).find("option:selected").text();
  269. var poolSub = $(this).data('code') + '`' +secCity+ $(this).data('text');
  270. // 是否选中
  271. if ($(this).is(':checked')) {
  272. //是否不限
  273. var isLimit = $(this).data('code').split('.')[$(this).data('code').split('.').length-1];
  274. if(isLimit!=="0"){
  275. //去除不限
  276. var currLimitarr = $(this).data('code').split('.')
  277. var arr = currLimitarr.pop();
  278. var currLimitstring = currLimitarr.join('.')+".0`";
  279. if(checkedPool.indexOf(currLimitstring+secCity+"不限")!==-1){
  280. checkedPool.splice($.inArray(currLimitstring+secCity+"不限", checkedPool), 1);
  281. }
  282. if ((checkedPool.length + 1) > maximumValue) {
  283. $(this).prop('checked', 0);
  284. disapperTooltip('remind', '最多选择' + maximumValue + '个');
  285. return false;
  286. } else {
  287. $('.checkOption:first').prop('checked', 0);
  288. $('.checkOption:first').closest('label').removeClass('selected');
  289. checkedPool.push(poolSub);
  290. $(this).closest('label').addClass('selected');
  291. }
  292. }else{
  293. //去除不限同级城市
  294. $('.checkOption').prop('checked', 0);
  295. $('.checkOption').closest('label').removeClass('selected');
  296. $(this).prop('checked', true);
  297. $(this).closest('label').addClass('selected');
  298. var currLimitarr1 = $(this).data('code');
  299. var currLimitstring1 = currLimitarr1.substring(0,currLimitarr1.length-2);
  300. var newcheckedPool= new Array();
  301. for(var j = 0;j<checkedPool.length;j++){
  302. var temarr = checkedPool[j].split('`')[0].split('.');
  303. if(temarr[temarr.length-1]=="0"||checkedPool[j].indexOf(currLimitstring1)==-1){
  304. newcheckedPool.push(checkedPool[j]);
  305. }
  306. }
  307. checkedPool = JSON.parse(JSON.stringify(newcheckedPool));
  308. if(checkedPool.indexOf(poolSub)==-1){
  309. checkedPool.push(poolSub);
  310. }
  311. if ((checkedPool.length ) > maximumValue) {
  312. $(this).prop('checked', 0);
  313. disapperTooltip('remind', '最多选择' + maximumValue + '个');
  314. return false;
  315. }
  316. }
  317. } else {
  318. checkedPool.splice($.inArray(poolSub, checkedPool), 1);
  319. $(this).closest('label').removeClass('selected');
  320. }
  321. syncOptionSelected();
  322. } else {
  323. var thisCode = $(this).data('code');
  324. var thisText = $(this).data('text');
  325. if (!$(this).hasClass('noLimit')) {
  326. if ($('.categorySelect').length > 1) {
  327. thisText = $(".categorySelect").eq($('.categorySelect').length-1).find("option:selected").text()+"/"+thisText;
  328. if(getPoint){
  329. searchByStationName(thisText);
  330. }
  331. that.find('.J_resultcode_city').val(thisCode.split('.')[thisCode.split('.').length-1]);
  332. } else {
  333. if($('.categorySelect').length == 1){
  334. if(getPoint){
  335. searchByStationName(thisText);
  336. }
  337. that.find('.J_resultcode_city').val(thisCode.split('.')[thisCode.split('.').length-1]);
  338. }else{
  339. that.find('.J_resultcode_city').val(thisCode);
  340. }
  341. }
  342. } else {
  343. if ($('.categorySelect').length > 1) {
  344. that.find('.J_resultcode_city').val(thisCode.split('.')[thisCode.split('.').length-1]);
  345. } else {
  346. if($('.categorySelect').length == 1){
  347. if(getPoint){
  348. searchByStationName(thisText);
  349. }
  350. that.find('.J_resultcode_city').val(thisCode.split('.')[thisCode.split('.').length-1]);
  351. }else{
  352. that.find('.J_resultcode_city').val(thisCode);
  353. }
  354. }
  355. }
  356. that.find('.J_resultcode_city').attr('keep', thisCode);
  357. that.find('.J_resuletitle_city').text(thisText);
  358. that.find('.J_resuletitle_city').attr('title', thisText);
  359. removeModal();
  360. }
  361. })
  362. // 根据id获取对应文字
  363. function getNameNew(id) {
  364. var name = '';
  365. for (var i in QS_city) {
  366. if (QS_city[i]) {
  367. var iArr = QS_city[i].split('`');
  368. for (var j = 0; j < iArr.length; j++) {
  369. if (id == iArr[j].split(',')[0]) {
  370. name = iArr[j].split(',')[1];
  371. }
  372. }
  373. }
  374. }
  375. if (!name) {
  376. // 只有一级
  377. for (var i in QS_city_parent) {
  378. if (id == QS_city_parent[i].split(',')[0]) {
  379. name = QS_city_parent[i].split(',')[1];
  380. }
  381. }
  382. }
  383. return name;
  384. }
  385. // 根据id获取对应文字
  386. function getName(fid,id, pid) {
  387. var name = '';
  388. var cityname ='';
  389. if (pid) {
  390. // 只有一级
  391. for (var i in QS_city_parent) {
  392. if (id == QS_city_parent[i].split(',')[0]) {
  393. name = QS_city_parent[i].split(',')[1];
  394. }
  395. }
  396. } else {
  397. for (var i in QS_city) {
  398. if (QS_city[i]) {
  399. var iArr = QS_city[i].split('`');
  400. for (var j = 0; j < iArr.length; j++) {
  401. if (id == iArr[j].split(',')[0]) {
  402. name = iArr[j].split(',')[1];
  403. }
  404. if(fid == iArr[j].split(',')[0]){
  405. cityname = iArr[j].split(',')[1]
  406. }
  407. }
  408. }
  409. }
  410. }
  411. return cityname+name;
  412. }
  413. // 复原checkbox选中
  414. function recoverCheckbox() {
  415. for (var i = 0; i < checkedPool.length; i++) {
  416. $('.checkOption').each(function(index, el) {
  417. if ($(this).data('code') == checkedPool[i].split('`')[0]) {
  418. $(this).closest('label').addClass('selected');
  419. $(this).prop('checked', !0);
  420. }
  421. })
  422. }
  423. }
  424. // 清空
  425. $('#J_clear_all').off().on('click', function() {
  426. checkedPool.splice(0, checkedPool.length);
  427. $('.checkOption:checked').each(function() {
  428. $(this).prop('checked', 0);
  429. $(this).closest('label').removeClass('selected');
  430. })
  431. syncOptionSelected();
  432. })
  433. // 确定
  434. $('#J_btn_yes_city').off().on('click', function() {
  435. var checkedArray = $('.checkOption:checked');
  436. var codeArray = new Array();
  437. var textArray = new Array();
  438. var keepArray = new Array();
  439. for (var i = 0; i < checkedPool.length; i++) {
  440. keepArray[i] = checkedPool[i].split('`')[0];
  441. codeArray[i] = checkedPool[i].split('`')[0].split('.')[checkedPool[i].split('`')[0].split('.').length-1];
  442. textArray[i] = checkedPool[i].split('`')[1];
  443. }
  444. $('[data-toggle="funCityModal"][data-multiple="true"]').find('.J_resultcode_city').val(codeArray.join(','));
  445. $('[data-toggle="funCityModal"][data-multiple="true"]').find('.J_resultcode_city').attr('keep', keepArray.join(','));
  446. $('[data-toggle="funCityModal"][data-multiple="true"]').find('.J_resuletitle_city').text(textArray.length ? textArray.join('+') : '请选择');
  447. $('[data-toggle="funCityModal"][data-multiple="true"]').find('.J_resuletitle_city').attr('title', textArray.length ? textArray.join('+') : '请选择');
  448. removeModal();
  449. })
  450. // 同步
  451. function syncOptionSelected() {
  452. if (checkedPool.length) {
  453. //console.log("sync"+checkedPool);
  454. var checkedHtml = '';
  455. for (var i = 0; i < checkedPool.length; i++) {
  456. var pollArr = checkedPool[i].split('`');
  457. checkedHtml += '<div class="s-cell" data-code="' + pollArr[0] + '" data-text="' + pollArr[1] + '"><span>' + pollArr[1] + '</span><i class="J_s_i"></i></div>';
  458. }
  459. $('.J_cate_box').html(checkedHtml);
  460. $('.J_selected_group').addClass('open');
  461. } else {
  462. $('.J_selected_group').removeClass('open');
  463. }
  464. $('.J_s_i').off().on('click', function() {
  465. var sCode = $(this).closest('.s-cell').data('code');
  466. var sSub = $(this).closest('.s-cell').data('code') + '`' + $(this).closest('.s-cell').data('text');
  467. checkedPool.splice($.inArray(sSub, checkedPool), 1);
  468. $('.checkOption:checked').each(function() {
  469. if ($(this).data('code') == sCode) {
  470. $(this).prop('checked', 0);
  471. $(this).closest('label').removeClass('selected');
  472. }
  473. })
  474. syncOptionSelected();
  475. })
  476. }
  477. // 生成checkbox
  478. function checkboxFactory(id, title) {
  479. var checkboxHtml = '<div class="dl">';
  480. checkboxHtml += '<div class="dt"><span>' + title + '</span></div>';
  481. checkboxHtml += '<div class="dd"><ul>';
  482. if (QS_city[id]) {
  483. var checkArr = QS_city[id].split('`');
  484. for (var i = 0; i < checkArr.length; i++) {
  485. var arrP = checkArr[i].split(',');
  486. checkboxHtml += '<li><div class="one-select"><label><input class="check-box checkOption" type="checkbox" data-code="' + arrP[0] + '" data-text="' + arrP[1] + '">' + arrP[1] + '</label></div></li>';
  487. }
  488. } else {
  489. id = $('.categorySelect').eq($('.categorySelect').length-1).find('option:selected').val();
  490. checkboxHtml += '<li><div class="one-select"><label><input class="check-box checkOption noLimit" type="checkbox" data-code="' + id + '" data-text="' + title + '">不限</label></div></li>';
  491. }
  492. checkboxHtml += '</ul></div>';
  493. checkboxHtml += '<div class="clear"></div></div>';
  494. return checkboxHtml;
  495. }
  496. })
  497. // 初始化程序
  498. function prepareModal(titleValue, multipleValue, maximumValue) {
  499. var ie = !-[1, ];
  500. var ie6 = !-[1, ] && !window.XMLHttpRequest;
  501. $(backdropLayerTpl).appendTo($(document.body));
  502. if (ie6) {
  503. $('.modal_backdrop').css("height", $(document).height());
  504. }
  505. $(htmlLayerTpl).appendTo($(document.body));
  506. $('.J_modal_title').text(titleValue);
  507. if (multipleValue) {
  508. $('.J_modal_max').text('(最多选择' + maximumValue + '个)');
  509. }
  510. if (!multipleValue) {
  511. $('.modal_footer').hide();
  512. }
  513. $(".J_hoverbut").hover(function() {
  514. $(this).addClass("hover");
  515. }, function() {
  516. $(this).removeClass("hover");
  517. })
  518. // 可拖动
  519. var newObj = $('.modal_dialog');
  520. var newTit = newObj.find(".modal_header");
  521. newTit.mousedown(function(e) {
  522. var offset = newObj.offset();
  523. var x = e.pageX - offset.left;
  524. var y = e.pageY - offset.top;
  525. $(document).bind('mousemove', function(ev) {
  526. newObj.bind('selectstart', function() {
  527. return false;
  528. })
  529. var newx = ev.pageX - x;
  530. var newy = ev.pageY - y;
  531. newObj.css({
  532. 'left': newx + "px",
  533. 'top': newy + "px"
  534. })
  535. })
  536. })
  537. $(document).mouseup(function() {
  538. $(this).unbind("mousemove");
  539. })
  540. if (ie) {
  541. if (window.PIE) {
  542. $('.pie_about').each(function() {
  543. PIE.attach(this);
  544. })
  545. }
  546. }
  547. }
  548. // 关闭
  549. $(document).off('click','.J_dismiss_modal').on('click','.J_dismiss_modal', function() {
  550. removeModal();
  551. })
  552. // esc关闭
  553. $(document).on('keydown', function(event) {
  554. if (event.keyCode == 27) {
  555. removeModal();
  556. }
  557. })
  558. //关闭弹窗的公共方法
  559. function removeModal() {
  560. setTimeout(function() {
  561. $('.modal_backdrop').remove();
  562. $('.modal').remove();
  563. }, 50)
  564. }
  565. }(window.jQuery);