124 lines
3.7 KiB
JavaScript
124 lines
3.7 KiB
JavaScript
|
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<cities.hot.length; i++) {
|
||
|
$('<li>').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 '<label class="text-label text-label-left">' + suggestion[0] + '</label>' + ' '
|
||
|
+ '<label class="text-label text-label-right">' + suggestion[1] + '</label>';
|
||
|
}
|
||
|
},
|
||
|
|
||
|
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'});
|
||
|
};
|