<?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>G法师的实验室 &#187; 事件</title>
	<atom:link href="http://www.jatx.org/archives/tag/%e4%ba%8b%e4%bb%b6/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jatx.org</link>
	<description>I&#039;m Jser</description>
	<lastBuildDate>Fri, 27 Jan 2012 10:40:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>关于js的键盘事件</title>
		<link>http://www.jatx.org/archives/137</link>
		<comments>http://www.jatx.org/archives/137#comments</comments>
		<pubDate>Mon, 08 Nov 2010 03:45:18 +0000</pubDate>
		<dc:creator>G法师</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[事件]]></category>
		<category><![CDATA[键盘事件]]></category>

		<guid isPermaLink="false">http://www.jatx.net/?p=137</guid>
		<description><![CDATA[ [...]]]></description>
			<content:encoded><![CDATA[<p>以前总结过各个浏览器中键盘事件的触发情况，可以看出keydown, keyup是比较靠谱的</p>
<p>因为它们是系统提供的比较底层的事件，对应的是键码keyCode标识了哪个键被按下（并不知道输入的是哪个字符）</p>
<p>keypress事件能够给出输入的可打印字符，但是这个事件在各个浏览器和操作系统中存在着很多不兼容性<br />
在火狐中，在keypress中event.charCode保存了键入字符的ASCLL码，而其它的浏览器可以使用keyCode，<br />
要想获得这个字符可以使用String.fromCharCode()</p>
<p>阻止默认行为</p>
<p>用户的键入是可以用js来阻止的，相关代码对应为IE的 returnValue=false;和标准浏览器的preventDefault();<br />
实际中遇到的情况：<br />
除了Opera，在keydown的时候阻止时就可以取消键入的事件<br />
而Opera中需要在keypress的时候阻止。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jatx.org/archives/137/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>自定义事件之双击按键</title>
		<link>http://www.jatx.org/archives/116</link>
		<comments>http://www.jatx.org/archives/116#comments</comments>
		<pubDate>Thu, 15 Apr 2010 14:56:04 +0000</pubDate>
		<dc:creator>G法师</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[事件]]></category>

		<guid isPermaLink="false">http://www.jatx.net/archives/116</guid>
		<description><![CDATA[ [...]]]></description>
			<content:encoded><![CDATA[<p>遇到这样的需求，双击按键的事件    <br />还是直接上代码吧：    </p>
<div>
<pre class="source"><span style="color: #008000">//首先准备好常规的事件绑定函数</span>
<span style="color: #0000ff">function</span> addEvent(element, <span style="color: #0000ff">name</span>, callback) {
	<span style="color: #008000">//标准浏览器</span>
	<span style="color: #0000ff">if</span>(element.addEventListener) element.addEventListener(<span style="color: #0000ff">name</span>, callback, <span style="color: #0000ff">false</span>);
	<span style="color: #008000">//IE</span>
	<span style="color: #0000ff">else</span> element.attachEvent(&quot;<span style="color: #8b0000">on</span>&quot; + <span style="color: #0000ff">name</span>, callback);
}
<span style="color: #008000">//双击按键绑定函数</span>
<span style="color: #0000ff">function</span> addDblPressEvent(element, callback) {
	<span style="color: #0000ff">var</span> presstime = 2;<span style="color: #008000">//次数为2</span>
	addEvent(element, &quot;<span style="color: #8b0000">keyup</span>&quot;, press);
	<span style="color: #008000">//每次单击触发</span>
	<span style="color: #0000ff">function</span> press(e) {
		presstime--;
		<span style="color: #0000ff">setTimeout</span>(reset, 300);
		<span style="color: #0000ff">if</span>(presstime === 0) fire(e);
	}
	<span style="color: #008000">//恢复计数器</span>
	<span style="color: #0000ff">function</span> reset() {
		presstime++;
	}
	<span style="color: #008000">//触发双击</span>
	<span style="color: #0000ff">function</span> fire(e) {
		callback.call(element, e);
	}
}

<span style="color: #008000">//试一下</span>
<span style="color: #0000ff">window</span>.onload = <span style="color: #0000ff">function</span>() {
	addDblPressEvent(<span style="color: #0000ff">document</span>, <span style="color: #0000ff">function</span>(e) {
		console.log(&quot;<span style="color: #8b0000">double clicked</span>&quot;);
	});
}</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jatx.org/archives/116/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

