var initCityInput = function(element, flag) { //城市列表 var cities = { 'hot': [ '北京', '上海', '广州', '深圳', '成都', '重庆', '西安', '杭州', '武汉', '南京', '沈阳', '天津', '大连', '青岛', '长沙', '昆明', '长春', '郑州', '海口', '合肥', '济南', '福州', '哈尔滨', '乌鲁木齐' ] }, cityListContainer = $('#cityList' + flag), statisticsValue1 = (flag == 'From' ? '0' : '1'), listContainer = $('ul.cityContent', cityListContainer); //点击图标 element.add('#cityOpen' + flag).click(function(event) { if ($('#flight' + flag).hasClass('errorInput')) { $('#flight' + flag).removeClass('errorInput').unbind('focus').val(''); } if (cityListContainer.is(":visible")) { cityListContainer.hide(); Statistics.trigger(7, statisticsValue1, '1'); } else { cityListContainer.show(); $('#cityList' + (flag == 'From' ? 'To' : 'From' )).hide(); Statistics.trigger(7, statisticsValue1, '0'); } event.stopPropagation(); }); $('#cityClose' + flag).click(function(event) { cityListContainer.hide(); Statistics.trigger(9, statisticsValue1); event.stopPropagation(); }); //绘制城市列表 listContainer.empty(); for (var i=0; i').text(cities.hot[i]).appendTo(listContainer); } cityListContainer.click(function(event) { if (event.target.tagName == 'LI') { var selectedCity = $(event.target).text(); $('#flight' + flag).focus().val(selectedCity); InputKeeper.keep(flag.toLowerCase(), selectedCity); cityListContainer.hide(); if ($(event.target).parent().hasClass('cityHistory')) { Statistics.trigger(39, statisticsValue1, encodeURIComponent(selectedCity)); } else { Statistics.trigger(8, statisticsValue1, encodeURIComponent(selectedCity)); } } }); //点击输入框 element.click(function() { $(this).select(); }); //自动完成 element.textext({ plugins: 'autocomplete prompt', autocomplete: { dropdownMaxHeight : '160px', render: function(suggestion) { return '' + ' ' + ''; } }, prompt: flag == 'From' ? '出发地' : '目的地', itemManager: function() { return { compareItems: function(item1, item2) { return item1[0] == item2[0]; }, filter: function(list, query) { var result = [], regularQuery = query.replace(/\s/g, '').toLowerCase(), i = list.length - 1, dropdownBox = element.siblings('.text-dropdown'); for (; i >= 0; i--) { if (list[i][0].indexOf(regularQuery) === 0 || list[i][2].indexOf(regularQuery) === 0 || list[i][3].indexOf(regularQuery) === 0) { result.push(list[i]); } } if (result.length > 4) { element.siblings('.text-dropdown').getNiceScroll().show().resize(); } else { element.siblings('.text-dropdown').getNiceScroll().hide(); } return result; }, itemToString : function(item) { Statistics.trigger(38, statisticsValue1, encodeURIComponent(item[0])); InputKeeper.keep(flag.toLowerCase(), item[0]); return item[0]; }, init : function(core) {}, stringToItem : function() {} } } }).bind('getSuggestions', function(e, data) { var textext = $(e.target).textext()[0], query = (data ? data.query : '') || ''; $('#cityList' + (flag == 'From' ? 'From' : 'To' )).hide(); $(this).trigger( 'setSuggestions', {result: textext.itemManager().filter(CityMap.PinYin, query)} ); }); element.siblings('.text-dropdown').niceScroll({cursoropacitymin:0.2,cursoropacitymax:0.4,cursorwidth:'6px'}); };