function selectYcl(obj){
$(document).ready(function(){
var type = 'type';
$('#'+obj.id+'').autocomplete("doYclmc",{
delay:200,
minChars: 0,
max: 15,
autoFill: false,
mustMatch: true,
matchContains: false,
scrollHeight: 220,
cacheLength:15,
extraParams: {},
formatItem: function(data, i, total) {
return data[0];
},
formatMatch: function(data, i, total) {
return data[0];
},
formatResult: function(data) {
return data[0];
}
});
});
}
我前段时间用jQuery做了一个控件,但出现了一个问题,由于TEXT是动态增加的,ID所以不能确定,我就用了上面的方法,功能到是基本可以实现,但是我得点多次才会出现我要的结果,最主要的是点了一次后autocomplete会运行多次,以后增加的会越点越慢,jQuery以前也没用过,只是做东西时看了一下,现在我上网找了好多资料,都没有看到解决的方法,希望各位能帮帮忙,可以给我说下autocomplete原理更好!
$(document).ready(function(){
var type = 'type';
$('#'+obj.id+'').autocomplete("doYclmc",{
delay:200,
minChars: 0,
max: 15,
autoFill: false,
mustMatch: true,
matchContains: false,
scrollHeight: 220,
cacheLength:15,
extraParams: {},
formatItem: function(data, i, total) {
return data[0];
},
formatMatch: function(data, i, total) {
return data[0];
},
formatResult: function(data) {
return data[0];
}
});
});
}
我前段时间用jQuery做了一个控件,但出现了一个问题,由于TEXT是动态增加的,ID所以不能确定,我就用了上面的方法,功能到是基本可以实现,但是我得点多次才会出现我要的结果,最主要的是点了一次后autocomplete会运行多次,以后增加的会越点越慢,jQuery以前也没用过,只是做东西时看了一下,现在我上网找了好多资料,都没有看到解决的方法,希望各位能帮帮忙,可以给我说下autocomplete原理更好!
解决方案 »
- 关于javascript调用webservice的问题
- Spring JDBC和Hibernate混用时,如何配置事务管理
- 再次高分问一下select传值的问题,这次下狠心100分一定要解决
- 请各位高手帮个忙,有个问题我一直做不出来,请大家帮忙解决:编写一个Applet,将其所在区域分成大小相等的2X2块
- springMvc @ResponseBody 注解问题
- 表单属性为enctype="multipart/form-data"如何判断提交是否合法
- 请教(内附源码)哪里错了?
- 谁能简单的告诉我mysql怎么才能用。
- 有关JBuilder5和Tomcat4结合的问题
- JSTL+EL 表达式 遍历权限菜单问题,急求大神解答
- SERVLET中session使用的问题
- Cannot find bean: "item" in any scope
1 实现类似GOOGLE功能,双击显全部数据,输入就根据条件自动选出结果
2 在动态增加的TEXT 里实现
你直接去的所有input type="text",然后遍历,不行么?jQuery里有现成的each方法啊。
我动态增加一行,行了有Text,每个Text都要做到与GOOGLE一样的功能,这个行是不固定
取得以后,做一个绑定不行么?
你不知道怎么取得这些text的object么?
$('#'+obj.id+'').autocomplete("doYclmc",{ )
autocomplete里面的东西操作了sevelet(doYclmc)很多次,这样就使得我后面增加TEXT后,点TEXT,他弹出的东西越来越慢,我实在找不出什么原因来
感觉特别奇怪:
$(document).ready(
这样的语句你却写在某个方法体里。
function add()//增加到TBODY里
{
var tb=document.getElementById("tb");
rows=tb.rows.length;
if(i==0)i=rows-1;
i++;
tb.appendChild(addRow());
}
function addRow()//增加一行
{
var row=document.createElement("tr");row.appendChild(addCell('txt','',''));
row.appendChild(addCell('checkbox','',''));
row.appendChild(addCell('text','ycl',false));
row.appendChild(addCell('text','cpgg',true));
row.appendChild(addCell('text','dw', true));
row.appendChild(addCell('text','ys',false));
row.appendChild(addCell('text','jcqdw',false));
row.appendChild(addCell('text','hw',false));
row.appendChild(addCell('text','dj',false));
row.appendChild(addCell('text','sl',false));
row.appendChild(addCell('text','jlsl',false));
row.appendChild(addCell('text','je',false));
return row;
}
//增加TEXT
function addText(id,IsRead)
{
var ip=document.createElement("input");
ip.style.width = '120%';
ip.style.height = '18px';
ip.style.border = '0';
ip.style.margin = '-2';
ip.style.padding = '3 3 0 3';
ip.style.fontFamily = 'tahoma';
ip.style.fontSize = '8pt';
ip.setAttribute("type","text");
ip.setAttribute("name",id+"_"+i);
ip.setAttribute("id",id+"_"+i);
ip.setAttribute("readOnly",IsRead);if(id=='ycl')
{
ip.onclick=new Function("selectYcl(this);");//给动态增加的TEXT增加onclick方法
ip.onkeypress=new Function("CpbmEnter(this,event)");
}
if(id=='hw')
{
ip.onclick=new Function("selectHw(this);");
}
if(id=='ys')
{
ip.onclick=new Function("selectYs(this);");
} if(id=='dj')
{
ip.onblur=new Function("countJe(this);");
} if(id=='sl')
{
ip.onblur=new Function("countJe(this);");
}
if(id=='jcqdw')
{
ip.onblur=new Function("selectdw(this);");
}return ip;
}function selectYcl(obj){ $(document).ready(function(){
var type = 'type';
$('#'+obj.id+'').autocomplete("doYclmc",{
delay:200,
minChars: 0,
max: 20,
autoFill: false,
mustMatch: true,
matchContains: false,
scrollHeight: 220,
extraParams: {},
formatItem: function(data, i, total) {
return data[0];
},
formatMatch: function(data, i, total) {
return data[0];
},
formatResult: function(data) {
return data[0];
}
});
});
}代码很多,我取了一部分,我也不想写方法体里,但是ID不确定,我也只能这样
function selectYcl(obj){ $(document).ready(function(){
var type = 'type';
$('#'+obj.id+'').autocomplete("doYclmc",{
delay:200,
minChars: 0,
max: 20,
autoFill: false,
mustMatch: true,
matchContains: false,
scrollHeight: 220,
extraParams: {},
formatItem: function(data, i, total) {
return data[0];
},
formatMatch: function(data, i, total) {
return data[0];
},
formatResult: function(data) {
return data[0];
}
});
});
}
$(document).ready方法是绑定当前页面加载时候的运行的方法,相当与onload。
你将obj的onclick绑定到selectYcl,则每次点击的时候实际上时在执行页面ready方法的绑定。
但是,无论怎么绑定,页面不加载,ready中的代码得不到执行。即使页面再次加载,这里的绑定也无效了。那么你在代码中进行autocomplete的绑定会有效果么?
你为什么不把$(document).ready(function(){ 去掉呢。这样看起来才对啊。
要不你绑定到别的事件看看,比如,onkeyup?