You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
255 lines
6.6 KiB
JavaScript
255 lines
6.6 KiB
JavaScript
/**
|
|
|
|
* 公用导航搜索和快捷导航
|
|
|
|
*
|
|
|
|
* @dependencies 依赖zepto.min.js
|
|
|
|
*/
|
|
|
|
$(document).ready(function() {
|
|
|
|
var oSoClear = ai.i("js-so-ico-clear"),
|
|
|
|
oSoPopText = ai.i("js-so-pop-text"),
|
|
|
|
oSoPopBtnCancel = ai.i("js-so-pop-btn-cancel"),
|
|
|
|
oSoPopGuessSlip = ai.i("js-so-pop-guess-slip"),
|
|
|
|
oSoPop= ai.i("js-so-pop"),
|
|
|
|
oSoPopBtn = ai.i("js-so-pop-btn"),
|
|
|
|
oSoPopGuess = ai.i("js-so-pop-guess"),
|
|
|
|
oSoPopPromote = ai.i("js-so-pop-promote"),
|
|
|
|
oSoPopFormShell = ai.i("js-so-pop-form-shell");
|
|
|
|
|
|
|
|
$("#js-ico-search").click(function() {
|
|
|
|
if ("undefined" == typeof browserType) {
|
|
|
|
browserType = "";
|
|
|
|
}
|
|
|
|
if (browserType == "0") {
|
|
|
|
$("#js-so-pop").show();
|
|
|
|
$("#js-so-pop-text").val("");
|
|
|
|
$("#js-so-pop-text").focus();
|
|
|
|
} else {
|
|
|
|
window.location = "/search.html";
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$("#js-so-pop-btn-cancel").click(function(event) {
|
|
|
|
$(".so-pop-guess-slip").html("");
|
|
|
|
$(".g-search").hide();
|
|
|
|
});
|
|
|
|
$("#js-so-ico-clear").click(function(event) {
|
|
|
|
$("#js-so-pop-guess").hide();
|
|
|
|
$("#js-so-pop-btn").hide();
|
|
|
|
$("#js-so-pop-btn-cancel").show();
|
|
|
|
$("#js-so-pop-promote").show();
|
|
|
|
$("#js-so-pop-text").val("");
|
|
|
|
$("#js-so-pop-text").focus();
|
|
|
|
});
|
|
|
|
$("#js-so-pop-text").on("input", function(o) {
|
|
|
|
textChange(o);
|
|
|
|
}, false);
|
|
|
|
|
|
|
|
ai.touchMovePreventDefault(oSoPop);
|
|
|
|
ai.touchMovePreventDefault(oSoPopFormShell);
|
|
|
|
oSoPopFormShell.addEventListener('touchstart', function(e){
|
|
|
|
e.stopPropagation();
|
|
|
|
});
|
|
|
|
oSoPopGuess.addEventListener('touchstart', function(e){
|
|
|
|
e.stopPropagation();
|
|
|
|
});
|
|
|
|
oSoPopGuessSlip.addEventListener('touchstart',function(e){
|
|
|
|
e.preventDefault();
|
|
|
|
oSoPopBtn.focus();
|
|
|
|
});
|
|
|
|
oSoPopPromote.addEventListener('touchstart', function(e){
|
|
|
|
e.stopPropagation();
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
//首页的搜索
|
|
|
|
$(document).ready(function() {
|
|
|
|
btnStates();
|
|
|
|
|
|
|
|
$(".formShell").click(function(event) {
|
|
|
|
event.stopImmediatePropagation();
|
|
|
|
});
|
|
|
|
|
|
|
|
// touch版的首页中间的搜索
|
|
|
|
// IE
|
|
|
|
if ($.browser.msie) {
|
|
|
|
$("#name").on("onpropertychange", function(o) {
|
|
|
|
inputKeyGetVal();
|
|
|
|
}, false);
|
|
|
|
// 非IE
|
|
|
|
} else {
|
|
|
|
$("#name").on("input", function(o) {
|
|
|
|
inputKeyGetVal();
|
|
|
|
}, false);
|
|
|
|
}
|
|
|
|
$("#name").on("focus", function(o) {
|
|
|
|
inputKeyGetVal();
|
|
|
|
}, false);
|
|
|
|
|
|
|
|
// 清除文本框内容
|
|
|
|
$(".closeList").click(function(event) {
|
|
|
|
event.stopImmediatePropagation();
|
|
|
|
$(this).hide();
|
|
|
|
$(".inputKey").val("");
|
|
|
|
$(".popGuess").hide();
|
|
|
|
$("#searchMask").hide();
|
|
|
|
btnStates();
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#searchMask").click(function(){
|
|
|
|
$("#searchMask").hide();
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#searchMask").on("touchmove",function(e){
|
|
|
|
e.preventDefault();
|
|
|
|
})
|
|
|
|
|
|
|
|
$("#searchMask li").click(function(event){
|
|
|
|
event.stopImmediatePropagation();
|
|
|
|
$(".inputKey").val($(this).html());
|
|
|
|
$("#searchMask").hide();
|
|
|
|
})
|
|
|
|
|
|
|
|
$("#searchMask li").click(function(event){
|
|
|
|
event.stopImmediatePropagation();
|
|
|
|
$(".inputKey").val($(this).html());
|
|
|
|
$("#searchMask").hide();
|
|
|
|
})
|
|
|
|
});
|
|
|
|
|
|
|
|
function textChange(o) {
|
|
|
|
var num = o.target.value.getBytes();
|
|
|
|
if (num > 0) {
|
|
|
|
$("#js-so-pop-guess-slip").html("");
|
|
|
|
$("#js-so-pop-btn-cancel").hide();
|
|
|
|
$("#js-so-pop-btn").show();
|
|
|
|
} else {
|
|
|
|
$("#js-so-pop-btn").hide();
|
|
|
|
$("#js-so-pop-btn-cancel").show();
|
|
|
|
}
|
|
|
|
|
|
|
|
if (num > 2) {
|
|
|
|
try {
|
|
|
|
$.ajax({
|
|
|
|
url : '/matching.html?requestType=ajax&term=' + o.target.value,
|
|
|
|
type : 'get',
|
|
|
|
dataType : "json",
|
|
|
|
success : function(result) {
|
|
|
|
for ( var i in result) {
|
|
|
|
var id = 'sopopchange' + i;
|
|
|
|
$("#js-so-pop-guess-slip").append('<li id='+id+'>' + result[i] + '</li>');
|
|
|
|
var isTouch = 'ontouchstart' in window;
|
|
|
|
if(isTouch){
|
|
|
|
//在此使用ai库绑定 选择下拉内容
|
|
|
|
ai.touchClick(document.getElementById(id), function() {
|
|
|
|
$("#js-so-pop-text").val($(this).text());
|
|
|
|
$("#js-so-pop-guess").hide();
|
|
|
|
$("#js-so-pop-promote").show();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
//一般的onclick
|
|
|
|
document.getElementById(id).addEventListener('click',function(e){
|
|
|
|
$("#js-so-pop-text").val($(this).text());
|
|
|
|
$("#js-so-pop-guess").hide();
|
|
|
|
$("#js-so-pop-promote").show();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (result != null) {
|
|
|
|
$("#js-so-pop-promote").hide();
|
|
|
|
$("#js-so-pop-guess").show();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
} catch (e) {
|
|
|
|
$("#js-so-pop-guess").hide();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
function setNameVal(dom){
|
|
|
|
//选择下拉内容
|
|
|
|
if(dom!=null){
|
|
|
|
$(".inputKey").val(dom.innerHTML);
|
|
|
|
$("#searchMask").hide();
|
|
|
|
$(".so-pop-guess-slip").html('');
|
|
|
|
$(".so-pop-guess").hide();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// touch版首页的搜索
|
|
|
|
function inputKeyGetVal() {
|
|
|
|
// 先清空
|
|
|
|
$(".so-pop-guess-slip").html('');
|
|
|
|
$(".so-pop-guess").hide();
|
|
|
|
|
|
|
|
// 输入内容长度不合法, 就无需请求
|
|
|
|
var num = $(".inputKey").val().length;
|
|
|
|
if (num > 1 && num < 32) {
|
|
|
|
try {
|
|
|
|
$.ajax({
|
|
|
|
url : '/matching.html?requestType=ajax&term='
|
|
|
|
+ $(".inputKey").val() + '&random=' + Math.random(),
|
|
|
|
type : 'get',
|
|
|
|
dataType : "json",
|
|
|
|
success : function(result) {
|
|
|
|
// 先清空
|
|
|
|
$(".so-pop-guess-slip").html('');
|
|
|
|
$(".so-pop-guess").hide();
|
|
|
|
for (var i in result) {
|
|
|
|
var id = 'liId' + i;
|
|
|
|
$(".so-pop-guess-slip").append('<li id="' + id + '" onclick=setNameVal("'+id+'") >' + result[i] + '</li>');
|
|
|
|
var isInputTouch = 'ontouchstart' in window;
|
|
|
|
if(isInputTouch){
|
|
|
|
//在此使用ai库绑定 选择下拉内容
|
|
|
|
ai.touchClick(document.getElementById(id), function() {
|
|
|
|
$("#name").val($(this).text());
|
|
|
|
$(".so-pop-guess-slip").html('');
|
|
|
|
$(".so-pop-guess").hide();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
//一般的onclick
|
|
|
|
document.getElementById(id).addEventListener('click',function(e){
|
|
|
|
$("#name").val($(this).text());
|
|
|
|
$(".so-pop-guess-slip").html('');
|
|
|
|
$(".so-pop-guess").hide();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (result != null) {
|
|
|
|
$(".so-pop-guess").show();
|
|
|
|
$("#searchMask").show();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
} catch (e) {
|
|
|
|
$(".so-pop-guess").hide();
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$(".so-pop-guess-slip").html('');
|
|
|
|
$(".so-pop-guess").hide();
|
|
|
|
}
|
|
|
|
|
|
|
|
$(".popGuess").show();
|
|
|
|
$(".closeList").show();
|
|
|
|
btnStates();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* 头部搜索一系列动作
|
|
|
|
*/
|
|
|
|
function btnStates() {
|
|
|
|
if ($(".inputKey").val() != "") {
|
|
|
|
$(".btnSeach").show();
|
|
|
|
$(".btnCancel").hide();
|
|
|
|
} else {
|
|
|
|
$(".btnSeach").hide();
|
|
|
|
$(".btnCancel").show();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
String.prototype.getBytes = function() {
|
|
|
|
var value = this.match(/[^\x00-\xff]/ig);
|
|
|
|
return this.length + (value == null ? 0 : value.length);
|
|
|
|
} |