<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>浮山狼de博客 &#187; autocomplete</title>
	<atom:link href="https://www.fushanlang.com/tag/autocomplete/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fushanlang.com</link>
	<description>next station - 下一站，活在当下，且行且思</description>
	<lastBuildDate>Sat, 29 Nov 2014 15:14:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.5</generator>
	<item>
		<title>jquery autocomplete改进</title>
		<link>https://www.fushanlang.com/jquery-autocomplete-improvements-1962/</link>
		<comments>https://www.fushanlang.com/jquery-autocomplete-improvements-1962/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 05:00:43 +0000</pubDate>
		<dc:creator><![CDATA[fushanlang]]></dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[autocomplete]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.fushanlang.com/blog/?p=1962</guid>
		<description><![CDATA[<p>最近在使用jquery 的 autocomplete 插件，遇到几个问题，分享一下解决方案。</p> <p>firefox下的问题</p> <p>1、支持中文输入： （在IE等非firefox浏览器下可以准确的匹配中文字符，但firefox下却没有任何匹配，该方案里利用firefox的oninput事件来修正hack一下，解决！） 修改199行处：</p> }).bind("unautocomplete", function() { select.unbind(); $input.unbind(); $(input.form).unbind(".autocomplete"); }).bind("input", function() { // @hack by liqt:support for inputing chinese characters in firefox onChange(0, true); }); <p> 2、支持多次回车选定：（同样的看注释就可以了，除了opera，firefox 3.0以上在支持多回车上的“keydown”会有问题，与opera一样用‘keypress’解决！） 修改91行：</p> // only opera doesn't trigger keydown multiple times while pressed, others don't work with keypress at all $input.bind(($.browser.opera ? "keypress" <span style="color:#777"> . . . &#8594; Read More: <a href="https://www.fushanlang.com/jquery-autocomplete-improvements-1962/">jquery autocomplete改进</a></span>]]></description>
				<content:encoded><![CDATA[<p>最近在使用jquery 的 autocomplete 插件，遇到几个问题，分享一下解决方案。</p>
<p><strong>firefox下的问题</strong></p>
<p>1、支持中文输入： （在IE等非firefox浏览器下可以准确的匹配中文字符，但firefox下却没有任何匹配，该方案里利用firefox的oninput事件来修正hack一下，解决！）<br />
 修改199行处：</p>
<pre name="code" class="javascript">
  }).bind("unautocomplete", function() {
    select.unbind();
    $input.unbind();
    $(input.form).unbind(".autocomplete");
}).bind("input", function() {
   // @hack by liqt:support for inputing  chinese characters  in firefox
   onChange(0, true);
});
       </pre>
<p><span id="more-1962"></span><br />
2、支持多次回车选定：（同样的看注释就可以了，除了opera，firefox 3.0以上在支持多回车上的“keydown”会有问题，与opera一样用‘keypress’解决！）<br />
    修改91行：</p>
<pre name="code" class="javascript">
// only opera doesn't trigger keydown multiple times while pressed, others don't work with keypress at all
$input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) {</pre>
<p>修改为：</p>
<pre name="code" class="javascript">
// only opera mozilla doesn't trigger keydown multiple times while pressed, others don't work with keypress at all
$input.bind((($.browser.opera || $.browser.mozilla) ? "keypress" : "keydown") + ".autocomplete", function(event) {</pre>
<p><strong>autocomplete 接受参数改进：</strong></p>
<p>原始设计中autocomplete数据源只能是json数组，对象或者经过ajax返回的json数组的url，现改进一些，允许其接受一个函数对象，并且在该函数内处理。代码如下：</p>
<pre name="code" class="javascript">
var isUrl = typeof urlOrData == "string"||typeof urlOrData == "function"; // 加入函数支持，也当url处理，最小化修改代码
</pre>
<p>//在第340几行function request(term, success, failure)内部加入函数处理的分支</p>
<pre name="code" class="javascript">
.....
}else if(typeof(options.url) == "function"){
         options.url.apply(null,[term,function(data){
	if (data != null &amp;&amp; data.length &gt; 0) {
	found = true;
	var parsed = options.parse &amp;&amp; options.parse(data) ||parse_json(data);
	// set autocActive to true, to open auto active when user are typing.
	success(term, parsed);
	return;
	}
         }]);
   }
.......
</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.fushanlang.com/jquery-autocomplete-improvements-1962/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.616 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2025-10-31 19:47:30 -->
