* 更新: *我已经回答了我的问题。但你仍然可以给我建议,我会把你的答案选为
注意:如果您不需要知道我想对代码做什么,只需跳过前几段并直接查看代码并告诉我它们为什么不能正常工作。
当你在ask页面输入你的标题时,我想做一些类似stackoverflow的类似标题搜索。
我需要拆分单词才能制作正则表达式,然后在数据库中搜索。由于我的应用程序是中文(每个单词之间没有空格),我认为使用PHP将中文分成有意义的短语太难了。我有一个想法,根据中国IME的特点,使用javascript在客户端分割它,例如,如果你想在中文输入“你好中国”这个词,人们通常在IME中键入“nihao [space] zhongguo”(注意空格键的位置,因为'你好'(nihao - hello)是一个短语而'中国'(中国 - 中国)是另一个。因此,当人们按空格键时,我记录他在空格前输入的单词并启动2秒的计时器,如果他或她输入另一个单词清除计时器并继续记录他或她是否没有,请将记录的每个单词发送到服务器。
Qustion,这是个好主意吗?还有其他方便的方法吗?为什么我写入测试的这些行不会没有错误。脚本:
$(function(){ var i=0; $('#t').keyup(function(e){ if(e.keyCode==32) { eval("a"+i+"=$(this).val()"); i++; var timer=setTimeout("for(b=0;b<i;b++){alert(eval('a'+b));}",1000); if($("#t").keydown()) { clearTimeout(timer); } } }) })
HTML:
<input id="t"/>
答案 0 :(得分:0)
我想我知道为什么它现在不起作用了:
首先,i
应该是一个全局变量;
其次,keydown()
函数应该在keyup()
之外。修改过的js:
$(function(){
i=0;
timer=null;
$('#t').keyup(function(e){
if(e.keyCode==32)
{
eval("a"+i+"=$(this).val()");
i++;
timer=setTimeout("for(b=0;b<i;b++){alert(eval('a'+b));}",1000)
}
})
if($("#t").keydown())
{
clearTimeout(timer);
}
})
如果您对我的想法或代码有其他建议,您仍然可以回答这个问题,或者我会在一段时间后选择这个。