li的click事件与input的onblur事件发生冲突了怎么办 不知道你是怎么处理的,让input的获取焦点和失去焦点来控制ul的显示和隐藏然后,又让li的click来控制ul的隐藏一旦点击了某个li,就把这个li的值传递给指定的input 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问题在这里:我点击li元素的时候同时又让input 失去了焦点, 结果li click 事件与input blur 事件同时发生了.. 我本来在li click 事件中准备将选择的项写入input里的,结果被input blur 事件一搅和,下拉单被隐藏了,没能写入input。因为写入语句在li click 事件里, 我这么说还明白吗?? jquery代码: $(function () { $("input:text").keyup(function () { var key = $.trim($(this).val()); if (key !== "") { // 如果关键字不为空 $.ajax({ type: "POST", .... ... success: function (data) { $(".completionList").show(); $(".completionList ul li").remove(); $(data.d).each(function (i) { $("div.completionList ul").append("<li>"+this+ "</li>"); }); } }); } }).blur(function () { // input失去焦点事件 $("div.completionList").hide(); }); $("div.completionList ul li").live('click', function () { // li点击事件 var index = $("div.completionList ul li").index(this); var key = $(this).eq(index).text(); $("input:text").val(key); $("div.completionList").hide(); }) }) 我也是这么想的,所以写了一个判断语句if($("div.completionList ul li").css("background")!="#fgggdd"){ // 隐藏下拉单} 但貌似是错的,因为判断的不是当前的那个选项,而是所有li,要是有一个方法取得当前的li 元素就好了 写个只要li的上面有鼠标事件发生,input的隐藏行为,就不执行 关于jqgrid列排序的问题。 关于 setTimeout(function()延时循环的问题 依然没有解决 但已经结贴给分了,感谢热心的朋友 如何在框架之间刷新页面?(急!!) 关于AJAX问题,XMLHttpRequest服务器返回的状态码是0,请帮我看一下 姹傚姪 怎么对document做xpath查询? 求检测gif,jpg文件类型的正则表达式!! js字符串问题?v1.avi如何取出1,在线等待 急!有关flash和层的问题 击好像window.open()那 如何在javascript里解析json数据 js获取checkbox的值问题
下拉单被隐藏了,没能写入input。因为写入语句在li click 事件里, 我这么说还明白吗??
$(function () {
$("input:text").keyup(function () {
var key = $.trim($(this).val());
if (key !== "") { // 如果关键字不为空
$.ajax({
type: "POST",
....
...
success: function (data) {
$(".completionList").show();
$(".completionList ul li").remove();
$(data.d).each(function (i) {
$("div.completionList ul").append("<li>"+this+ "</li>");
});
}
});
}
}).blur(function () { // input失去焦点事件
$("div.completionList").hide();
}); $("div.completionList ul li").live('click', function () { // li点击事件
var index = $("div.completionList ul li").index(this);
var key = $(this).eq(index).text();
$("input:text").val(key);
$("div.completionList").hide();
})
})
if($("div.completionList ul li").css("background")!="#fgggdd")
{
// 隐藏下拉单
}
但貌似是错的,因为判断的不是当前的那个选项,而是所有li,要是有一个方法取得当前的li 元素就好了
input的隐藏行为,就不执行