ǰÑÔ
ÕâÆª²©¿ÍÓе㳤£¬Èç¹ûÄãÊǸßÊÖÇëÄú¶ÁÒ»¶Á£¬ÄÜ¶ÔÆäÖеÄһЩÎóµãÌá³öÀ´£¬ÒÔÃâÎÒÎóÈË×ӵܣ¬²¢ÇÒ°ïÖúÎÒÌá¸ß
Èç¹ûÄãÊÇjavascript²ËÄñ£¬½¨ÒéÄúºÃºÃ¶ÁÒ»¶Á£¬ÕæµÄÀí½âÏÂÀ´»áÓв»Ò»ÑùµÄÊÕ»ñ
ÔÚϲÅÊèѧdz£¬ÎÄÖÐÄÑÃâ»áÓв»Í¬³Ì¶ÈµÄ´íÎó£¬ÇëÄúÖ¸ÕýÁôÑÔ
PS£ºÊ¼þ½×¶ÎÒ»½ÚÇë¿´×îв©¿Í£¬Ö®Ç°Àí½âÓÐÎó
javascriptʼþ»ù´¡
ÎÒÃǵÄÍøÒ³Ö®ËùÒԷḻ¶à²Ê²¢¾ßÓн»»¥¹¦ÄÜ£¬ÊÇÒòΪÎÒÃǵÄjavascript½Å±¾ÓïÑÔ£¬¶øjavascriptÓëHTMLÖ®¼äµÄ½»»¥ÓÖÊÇͨ¹ýʼþ»úÖÆÊµÏÖµÄ
ËùÒÔ£¬Ê¼þÊÇjavascriptÒ»´óºËÐÄ£¬ÉîÈëÁ˽âʼþ»úÖÆÔÚÎÒÃÇÓöµ½½ÏÀ§ÄÑÎÊÌâʱºòÊ®·ÖÓаïÖú
Ëùνʼþ£¬¾ÍÊÇÍøÒ³·¢ÉúµÄһЩ˲¼ä£¨±ÈÈçµã»÷¡¢»¬¶¯£©£¬ÔÚÕâЩ˲¼äÎÒÃÇʹÓÃʼþ¼àÌýÆ÷£¨»Øµ÷º¯Êý£©È¥¶©ÔÄʼþ£¬ÔÚʼþ·¢ÉúʱºòÎÒÃǵĻص÷º¯Êý¾Í»á´¥·¢
¹Û²ìÕßģʽµÄjavascriptʼþ»úÖÆµÄ»ùʯ£¬ÕâÖÖÒ첽ʼþ±à³ÌÄ£ÐÍ£¬¾ÍÊÇÓû§²úÉúÌØ¶¨µÄ²Ù×÷£¬ä¯ÀÀÆ÷¾Í»á²úÉúÌØ¶¨µÄʼþ£¬ÎÒÃÇÈôÊǶ©ÔÄÁËʼþ£¬»Øµ÷¾Í»á´¥·¢
ºÃÁË£¬ÎÒÃÇÏÂÃæ¾ÍÀ´Ñо¿ÏÂjavascriptʼþ»úÖÆµÄ¼¸¸ö¹Ø¼üµã¡£
ʼþ²¶»ñ/ðÅÝ
ÍøÒ³ÉϵIJ¼¾ÖºÜ¸´ÔÓ£¬ÎÒÃǶÔÒ³ÃæµÄµ¥Ò»²Ù×÷ÓпÉÄܲúÉúÔ¤¼ÆÒÔÍâµÄÓ°Ï죺
±ÈÈçÎÒµã»÷Ò»¸öspan£¬ÎÒ¿ÉÄܾÍÏëµã»÷Ò»¸öspan£¬ÊÔÊÔÉÏËûÊÇÏȵã»÷document£¬È»ºóµã»÷ʼþ´«µÝµ½spanµÄ£¬¶øÇÒ²¢²»»áÔÚspanͣϣ¬spanÓÐ×ÓÔªËØ¾Í»á¼ÌÐøÍùÏ£¬×îºó»áÒÀ´Î»Ø´«ÖÁdocument£¬ÎÒÃÇÕâÀï͵һÕÅͼ£º

ÎÒÃÇÕâÀï͵ÁËÒ»ÕÅͼ£¬ÕâÕÅͼºÜºÃµÄ˵Ã÷ÁËʼþµÄ´«²¥·½Ê½
ʼþðÅݼ´ÓÉ×î¾ßÌåµÄÔªËØ£¨ÎĵµÇ¶Ì××îÉî½Úµã£©½ÓÊÕ£¬È»ºóÖð²½ÉÏ´«ÖÁdocument
ʼþ²¶»ñ»áÓÉ×îÏȽÓÊÕµ½Ê¼þµÄÔªËØÈ»ºó´«Ïò×îÀï±ß£¨ÎÒÃÇ¿ÉÒÔ½«ÔªËØÏëÏó³ÉÒ»¸öºÐ×Ó×°Ò»¸öºÐ×Ó£¬¶ø²»ÊÇÒ»¸ö»ýľ¶Ñ»ý£©
ÕâÀïÎÒÃǽøÈëdomʼþÁ÷£¬ÕâÀïÎÒÃÇÏêϸ¿´¿´javascriptʼþµÄ´«µÝ·½Ê½
DOMʼþÁ÷
DOM2¼¶Ê¼þ¹æ¶¨Ê¼þ°üÀ¨Èý¸ö½×¶Î£º
¢Ù ʼþ²¶»ñ½×¶Î
¢Ú ´¦ÓÚÄ¿±ê½×¶Î
¢Û ʼþðÅݽ׶Î
ÕâÀï˵ÆðÀ´²»Ì«Ã÷ÏÔ£¬ÎÒÃÇÀ´Ò»¸öÀý×Ó°É£º
http://sandbox.runjs.cn/show/l31ucooa
<html xmlns="http://www.w3.org/1999/xhtml"> 2 <head> 3 <title></title> 4 <style type="text/css"> 5 #p { width: 300px; height: 300px; padding: 10px; border: 1px solid black; } 6 #c { width: 100px; height: 100px; border: 1px solid red; } 7 </style> 8 </head> 9 <body> 10 <div id="p"> 11 parent 12 <div id="c"> 13 child 14 </div> 15 </div> 16 <script type="text/javascript"> 17 var p = document.getElementById('p'), 18 c = document.getElementById('c'); 19 c.addEventListener('click', function () { 20 alert('×ӽڵ㲶»ñ') 21 }, true); 22 23 c.addEventListener('click', function () { 24 alert('×Ó½ÚµãðÅÝ') 25 }, false); 26 </script> 27 </body> 28 </html> |
Õâ¸ö´úÂë±È½Ï¼òµ¥£¬ÎÒÃÇÖ÷Òªµã»÷child¼´¿É£¬ÕâÀïÒªÖ¤Ã÷µÄ¾ÍÊǵã»÷ʼþÊÇÏȲ¶»ñÔÙðÅÝ£¬ËùÒÔÎÒÃÇÕâÀïÀ´Ò»¸ö¸´ÔÓµãµÄ¹ØÏµ£º
http://sandbox.runjs.cn/show/ij4rih6x
<html xmlns="http://www.w3.org/1999/xhtml"> 2 <head> 3 <title></title> 4 <style type="text/css"> 5 #p { width: 300px; height: 300px; padding: 10px; border: 1px solid black; } 6 #c { width: 100px; height: 100px; border: 1px solid red; } 7 </style> 8 </head> 9 <body> 10 <div id="p"> 11 parent 12 <div id="c"> 13 child 14 </div> 15 </div> 16 <script type="text/javascript"> 17 var p = document.getElementById('p'), 18 c = document.getElementById('c'); 19 c.addEventListener('click', function () { 20 alert('×ӽڵ㲶»ñ') 21 }, true); 22 23 c.addEventListener('click', function () { 24 alert('×Ó½ÚµãðÅÝ') 25 }, false); 26 27 p.addEventListener('click', function () { 28 alert('¸¸½Úµã²¶»ñ') 29 }, true); 30 31 p.addEventListener('click', function () { 32 alert('¸¸½ÚµãðÅÝ') 33 }, false); 34 </script> 35 </body> 36 </html> |
ÏÖÔÚÕâ¸ö¼Ò»ï¾Í±È½ÏʵÔÚÁË£¬²»×¢Òâ¾ÍÈÝÒ×Ôεģ¬ÎÒÃÇÀ´ÉÔ΢ÀíÒ»Àí£º
¢Ù µã»÷parent£¬Ê¼þÊ×ÏÈÔÚdocumentÉÏÈ»ºóparent²¶»ñµ½Ê¼þ£¬´¦ÓÚÄ¿±ê½×¶ÎÈ»ºóevent.targetÒ²µÈÓÚparent£¬ËùÒÔ´¥·¢²¶»ñʼþ
ÓÉÓÚtargetÓëcurrentTargetÏàµÈÁË£¬ËùÒÔÈÏΪµ½µ×ÁË£¬¿ªÊ¼Ã°ÅÝ£¬Ö´ÐÐðÅÝʼþ
¢Ú µã»÷childÇé¿öÓÐËù²»Í¬£¬Ê¼þÓÉdocument´«ÏòparentÖ´ÐÐʼþ£¬È»ºó´«Ïòchild×îºó¿ªÊ¼Ã°ÅÝ£¬ËùÒÔÖ´ÐÐ˳Ðò¸÷λһ¶¨ÒªÇåÎú

ÖÁ´Ë£¬ÎÒÃÇʼþ´«Êä½áÊø£¬ÏÂÃæ¿ªÊ¼Ñо¿Ê¼þ²ÎÊý
ʼþ¶ÔÏó
Ëùνʼþ¶ÔÏó£¬ÊÇÓëÌØ¶¨¶ÔÏóÏà¹Ø£¬²¢ÇÒ°üº¬¸ÃʼþÏêϸÐÅÏ¢µÄ¶ÔÏó¡£
ʼþ¶ÔÏó×÷Ϊ²ÎÊý´«µÝ¸øÊ¼þ´¦Àí³ÌÐò£¨IE8֮ǰͨ¹ýwindow.event»ñµÃ£©£¬ËùÓÐʼþ¶ÔÏó¶¼ÓÐʼþÀàÐÍtypeÓëʼþÄ¿±êtarget£¨IE8֮ǰµÄsrcElementÎÒÃDz»¹Ø×¢ÁË£©
¸÷¸öʼþµÄʼþ²ÎÊý²»Ò»Ñù£¬±ÈÈçÊó±êʼþ¾Í»áÓÐÏà¹Ø×ø±ê£¬°üº¬ºÍ´´½¨ËûµÄÌØ¶¨Ê¼þÓйصÄÊôÐԺͷ½·¨£¬´¥·¢µÄʼþ²»Ò»Ñù£¬²ÎÊýÒ²²»Ò»Ñù£¨±ÈÈçÊó±êʼþ¾Í»áÓÐ×ø±êÐÅÏ¢£©£¬ÎÒÃÇÕâÀïÌ⼸¸ö½ÏÖØÒªµÄ
PS£ºÒÔϵÄÐÖµÜÈ«²¿ÊÇÖ»¶ÁµÄ£¬ËùÒÔ²»ÒªÍýÏëÈ¥ËæÒâ¸ü¸Ä£¬IE֮ǰµÄÎÊÌâÎÒÃǾͲ»¹Ø×¢ÁË
bubbles
±íÃ÷ʼþÊÇ·ñðÅÝ
cancelable
±íÃ÷ÊÇ·ñ¿ÉÒÔÈ¡ÏûʼþµÄĬÈÏÐÐΪ
currentTarget
ijʼþ´¦Àí³ÌÐòµ±Ç°ÕýÔÚ´¦ÀíµÄÄǸöÔªËØ
defaultPrevented
Ϊtrue±íÃ÷ÒѾµ÷ÓÃÁËpreventDefault£¨DOM3ÐÂÔö£©
eventPhase
µ÷ÓÃʼþ´¦Àí³ÌÐòµÄ½×¶Î£º1 ²¶»ñ£»2 ´¦Óڽ׶Σ»3 ðÅݽ׶Î
Õâ¸öÊôÐԵı仯ÐèÒªÔڶϵãÖв鿴£¬²»È»Äã¿´µ½µÄ×ÜÊÇ0
target
ʼþÄ¿±ê£¨°ó¶¨Ê¼þÄǸödom£©
trusted
true±íÃ÷ÊÇϵͳµÄ£¬falseΪ¿ª·¢ÈËÔ±×Ô¶¨ÒåµÄ£¨DOM3ÐÂÔö£©
type
ʼþÀàÐÍ
view
Óëʼþ¹ØÁªµÄ³éÏóÊÓͼ£¬·¢ÉúʼþµÄwindow¶ÔÏó
preventDefault
È¡ÏûʼþĬÈÏÐÐΪ£¬cancelableÊÇtrueʱ¿ÉÒÔʹÓÃ
stopPropagation
È¡Ïûʼþ²¶»ñ/ðÅÝ£¬bubblesΪtrue²ÅÄÜʹÓÃ
stopImmediatePropagation
È¡Ïûʼþ½øÒ»²½Ã°ÅÝ£¬²¢ÇÒ×éÖ¯ÈκÎʼþ´¦Àí³ÌÐò±»µ÷Óã¨DOM3ÐÂÔö£©
ÔÚÎÒÃǵÄʼþ´¦ÀíÄÚ²¿£¬thisÓëcurrentTargetÏàͬ
createEvent
¿ÉÒÔÔÚdocument¶ÔÏóÉÏʹÓÃcreateEvent´´½¨Ò»¸öevent¶ÔÏó
DOM3ÐÂÔöÒÔÏÂʼþ£º
UIEvents
MouseEvents
MutationEvents£¬Ò»°ã»¯dom±ä¶¯
HTMLEventsÒ»°ãdomʼþ
´´½¨Êó±êʼþʱÐèÒª´´½¨µÄʼþ¶ÔÏóÐèÒªÌṩָ¶¨µÄÐÅÏ¢£¨Êó±êλÖÃÐÅÏ¢£©£¬ÎÒÃÇÕâÀïÌṩÒÔϲÎÊý£º
var type = 'click'; //Òª´¥·¢µÄʼþÀàÐÍ 2 var bubbles = true; //ʼþÊÇ·ñ¿ÉÒÔðÅÝ 3 var cancelable = true; //ʼþÊÇ·ñ¿ÉÒÔ×èÖ¹ä¯ÀÀÆ÷ĬÈÏʼþ 4 var view = document.defaultView; //Óëʼþ¹ØÁªµÄÊÓͼ£¬¸ÃÊôÐÔĬÈϼ´¿É£¬²»¹Ü 5 var detail = 0; 6 var screenX = 0; 7 var screenY = 0; 8 var clientX = 0; 9 var clientY = 0; 10 var ctrlKey = false; //ÊÇ·ñ°´ÏÂctrl 11 var altKey = false; //ÊÇ·ñ°´ÏÂalt 12 var shiftKey = false; 13 var metaKey = false; 14 var button = 0;//±íʾ°´ÏÂÄÄÒ»¸öÊó±ê¼ü 15 var relatedTarget = 0; //Ä£Äâmousemove»òÕßoutʱºòÓõ½£¬ÓëʼþÏà¹ØµÄ¶ÔÏó 16 17 var event = document.createEvent('MouseEvents'); 18 event.initMouseEvent(type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, 19 ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget); |
Èç´Ë£¬ÎÒÃǾÍ×Ô¼º´´½¨ÁËÒ»¸öevent¶ÔÏó£¬È»ºó¿ÉÒÔ´«¸øÎÒÃÇ×Ô¼º´´½¨µÄʼþ£¬Õâ¸ö֪ʶµã£¬ÎÒÃÇÏÂÃæÔÙ˵
PS£ºÖµµÃ×¢ÒâµÄÊÇ£¬ÎÒÃÇ×Ô¼º´´½¨µÄevent¶ÔÏó¿ÉÒÔÓÐÒ»µã²»Ò»ÑùµÄ¶«Î÷£¬±ÈÈçÎÒÃǵÄʼþ¶ÔÏó¿ÉÄܶàÁËÒ»¸öÕâÖÖÊôÐÔ£º
ʼþÄ£Äâ
ʼþÄ£ÄâÊÇjavascriptʼþ»úÖÆÖÐÏ൱ÓÐÓõŦÄÜ£¬Àí½âʼþÄ£ÄâÓëÉÆÓÃʼþÄ£ÄâÊÇÅбðÒ»¸öǰ¶ËµÄÖØÒªÒÀ¾Ý£¬ËùÒÔ¸÷λһ¶¨ÒªÉîÈëÀí½â£¨ÎÒÀí½â½ÏË®£©
ʼþÒ»°ãÊÇÓÉÓû§²Ù×÷´¥·¢£¬ÆäʵjavascriptÒ²ÊÇ¿ÉÒÔ´¥·¢µÄ£¬±È½ÏÖØÒªµÄÊÇ£¬javascriptµÄ´¥·¢Ê¼þ»¹»áðÅÝŶ£¡£¡£¡
Òâ˼¾ÍÊÇ£¬javascript´¥·¢µÄʼþÓëä¯ÀÀÆ÷±¾Éí´¥·¢ÆäʵÊÇÒ»ÑùµÄ£¨²¢²»ÍêȫһÖ£©
Èç´Ë£¬ÎÒÃÇÕâÀïÀ´Í¨¹ý¼üÅÌʼþ´¥·¢¸Õ¸ÕµÄµã»÷ʼþ°É£¬ÎÒÃÇÕâÀïµã»÷¼üÅ̱㴥·¢childµÄµã»÷£¬¿´¿´ËûµÄ±íÏÖÈçºÎ
PS£ºÓÉÓÚÊǼüÅÌ´¥·¢£¬±ã²»¾ßÓÐÏà¹Ø²ÎÊýÁË£¬ÎÒÃÇ¿ÉÒÔ²¶×½event²ÎÊý£¬Õâ¶ÔÎÒÃǶÓʼþ´«ÊäµÄÀí½âÓÐĪ´óµÄ°ïÖú£º
ÎÒÃÇÕâÀïÏÈ´´½¨Ê¼þ²ÎÊý£¬È»ºó¸ø¼üÅÌ×¢²áʼþ£¬ÔÚµã»÷¼üÅÌʱºò±ã´¥·¢childµÄµã»÷ʼþ£¬¸÷λÊÔÊÔ¿´£º
PS£ºÕâ¸ö¿ÉÄÜÐèÒª´ò¿ªÍøÒ³µã»÷¿Õ¸ñ²âÊÔÁË
http://sandbox.runjs.cn/show/pesvelp1
<html xmlns="http://www.w3.org/1999/xhtml"> 2 <head> 3 <title></title> 4 <style type="text/css"> 5 #p { width: 300px; height: 300px; padding: 10px; border: 1px solid black; } 6 #c { width: 100px; height: 100px; border: 1px solid red; } 7 </style> 8 </head> 9 <body> 10 <div id="p"> 11 parent 12 <div id="c"> 13 child 14 </div> 15 </div> 16 <script type="text/javascript"> 17 alert = function (msg) { 18 console.log(msg); 19 } 20 21 var p = document.getElementById('p'), 22 c = document.getElementById('c'); 23 c.addEventListener('click', function (e) { 24 console.log(e); 25 alert('×ӽڵ㲶»ñ') 26 }, true); 27 c.addEventListener('click', function (e) { 28 console.log(e); 29 alert('×Ó½ÚµãðÅÝ') 30 }, false); 31 32 p.addEventListener('click', function (e) { 33 console.log(e); 34 alert('¸¸½Úµã²¶»ñ') 35 }, true); 36 37 p.addEventListener('click', function (e) { 38 console.log(e); 39 alert('¸¸½ÚµãðÅÝ') 40 }, false); 41 42 document.addEventListener('keydown', function (e) { 43 if (e.keyCode == '32') { 44 var type = 'click'; //Òª´¥·¢µÄʼþÀàÐÍ 45 var bubbles = true; //ʼþÊÇ·ñ¿ÉÒÔðÅÝ 46 var cancelable = true; //ʼþÊÇ·ñ¿ÉÒÔ×èÖ¹ä¯ÀÀÆ÷ĬÈÏʼþ 47 var view = document.defaultView; //Óëʼþ¹ØÁªµÄÊÓͼ£¬¸ÃÊôÐÔĬÈϼ´¿É£¬²»¹Ü 48 var detail = 0; 49 var screenX = 0; 50 var screenY = 0; 51 var clientX = 0; 52 var clientY = 0; 53 var ctrlKey = false; //ÊÇ·ñ°´ÏÂctrl 54 var altKey = false; //ÊÇ·ñ°´ÏÂalt 55 var shiftKey = false; 56 var metaKey = false; 57 var button = 0; //±íʾ°´ÏÂÄÄÒ»¸öÊó±ê¼ü 58 var relatedTarget = 0; //Ä£Äâmousemove»òÕßoutʱºòÓõ½£¬ÓëʼþÏà¹ØµÄ¶ÔÏó 59 var event = document.createEvent('Events'); 60 event.myFlag = 'ҶСîÎ'; 61 event.initEvent(type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, 62 ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget); 63 64 console.log(event); 65 c.dispatchEvent(event); 66 } 67 }, false); 68 </script> 69 </body> 70 </html> |
¸÷룬ÕâÀï¿´µ½ÁËÓë֮ǰµÄÏàͬ»òÕß²»Í¬Â𣿣¿£¿ÕâЩ¶¼ÊǺܹؼüµÄŶ£¬ÆäʵÖ÷Òª²»Í¬¾ÍÊÇÎÒÃǵÄʼþ²ÎÊýûÁËÊó±êλÖ㬶àÁËÒ»¸öÊôÐÔ£º

ÕâÀïÓÐÁ½µãÈÝÒ×Èø÷λÔì³É´í¾õ£º
¢Ù firefox²¢²»»á½«myFlagÏÔʾµ½consoleÏÂÃæ
¢Ú chromeÈç¹ûʹÓÃÔÉúalert»á×èÖ¹µÚÒ»´Î¸¸ÔªËز¶»ñ£¬ËùÒÔ¸÷λһ¶¨Òª×¢Òâ
È»ºóÕâÀﻹÓÐÒ»¸öСС֪ʶµã£º
ʹÓÃdom.dispatchEvent(event)´¥·¢Ä£Äâʼþ
ÒÆ¶¯¶ËÏìÓ¦ËÙ¶È
ÓÐÁËÒÔÉÏ֪ʶµã£¬Æäʵ¶ÔPC¶ËÀ´Ëµ»ù±¾¹»ÓÃÁË£¬Èç¹ûÔÙÉÔ΢Ñо¿ÏÂjqueryÔ´Âë¾ÍÉÆÄª´óÑÉÁË£¬µ«ÊÇÔÚÒÆ¶¯¶ËÈ´ÓÐËù²»Í¬£¬ÎÒÃÇÕâÀﻹµÃÀ´ÀíÒ»Àí
PS£ºÎÒÕâÀïÖ÷ÒªÕë¶Ôµã»÷ʼþ
PCÓëÒÆ¶¯¶ËÊó±êʼþ²îÒì
Ê×ÏÈ£¬ÔÚÒÆ¶¯¶ËmouseʼþºÃÏñ¾ÍÓе㲻ÄÇôÊÊÓÃÁË£¬µ¹²»ÊÇ˵touchʼþÒª±ÈmouseʼþºÃ£¬ÆäʵËûÃǵײãÔÀíÏà¾à²»´ó£¬Ö÷Òª²»Í¬µã¾ÍÊÇ£º
ÒÆ¶¯¶Ë»á¶àµã´¥ÆÁ
¶àµã´¥ÆÁ¾Í´øÀ´ÁËʼþ¶ÔÏó²ÎÊýµÄ²îÒ죬±ÈÈç˵£º
 
changedTouches/touches/targetTouches
touches£ºÎªÆÁÄ»ÉÏËùÓÐÊÖÖ¸µÄÐÅÏ¢
PS£ºÒòΪÊÖ»úÆÁĻ֧³Ö¶àµã´¥ÆÁ£¬ËùÒÔÕâÀïµÄ²ÎÊý¾ÍÓëÊÖ»úÓÐËù²»Í¬
targetTouches£ºÊÖÖ¸ÔÚÄ¿±êÇøÓòµÄÊÖÖ¸ÐÅÏ¢
changedTouches£º×î½üÒ»´Î´¥·¢¸ÃʼþµÄÊÖÖ¸ÐÅÏ¢
±ÈÈçÁ½¸öÊÖָͬʱ´¥·¢Ê¼þ£¬2¸öÊÖÖ¸¶¼ÔÚÇøÓòÄÚ£¬ÔòÈÝÁ¿Îª2£¬Èç¹ûÊÇÏȺóÀ뿪µÄµÄ»°£¬¾Í»áÏÈ´¥·¢Ò»´ÎÔÙ´¥·¢Ò»´Î£¬ÕâÀïµÄlength¾ÍÊÇ1£¬Ö»Í³¼Æ×îеÄ
PS£ºÒ»°ãchangedTouchesµÄlength¶¼ÊÇ1
touchendʱ£¬touchesÓëtargetTouchesÐÅÏ¢»á±»É¾³ý£¬changedTouches±£´æµÄ×îºóÒ»´ÎµÄÐÅÏ¢£¬×îºÃÓÃÓÚ¼ÆËãÊÖÖ¸ÐÅÏ¢
ÕâÀïҪʹÓÃÄĸöÊý¾Ý¸÷λ×Ô¼º¿´×Űì°É£¬ÎÒÒ²²»ÊÇÊ®·ÖÇåÎú£¨ÎÒÕâÀﻹÊÇʹÓÃchangedTouches°É£©
ÒÔÉϾÍÊÇmouseÓëtouchÖ÷Òª²»Í¬µã£¬µ«ÕâЩ²¢²»ÊÇ̫ӰÏìÎÒÃǵIJÙ×÷£¬ÒòΪµ½ÏÖÔÚΪֹ£¬ÎÒÃÇÒ»°ã»¹ÊÇʹÓõÄÊǵ¥»÷
СÌùÊ¿
¹úÄÚSPAÍøÕ¾Ä£Ê½½ÏÉÙ£¬Ä¿Ç°ÎªÖ¹»¹ÊÇÒÔµ¥¸öÍøÒ³ÎªÖ÷£¬spaģʽ¶Ôjavascript¼¼ÊõÒªÇó½Ï¸ß²»Ëµ£¬Ê״μÓÔØÁ¿´óÒ²ÊDz»¿É±ÜÃâµÄÎÊÌâ
¼ÓÖ®ÒÆ¶¯¶ËÉ豸½ñÄê²ÅÆÕ¼°£¬¶øÇÒ¸÷×ÔÕù¶áÁìµØ¡¢Õù¶áÈë¿Ú£¬»¹ÓÐÆäËûÔÒò£¬·´ÕýÏÖ¿öÊÇÓÐʱ×öÒÆ¶¯¶ËµÄ¼æÈݱÈ×öIEµÄ¼æÈÝ»¹ÄÑ
¾ÍÄüòµ¥µÄCSS3¶¯»À´Ëµ£¬ÔÚiosϾÍÓÐÉÁ¶¯ÏÖÏ󣬶øÇÒ»¹ÊÇiPhone4s£¬¾ÍÏÖ½ñ¸üл»´úÀ´Ëµ£¬´ËÖÖÇé¿ö²¢²»»áµÃµ½Ã÷ÏÔºÃת£¬¶øÇÒCSS3¶¯»×´Ì¬±£´æÎÊÌâÒàÊÇÒ»´óÄÑÌâ
ÁíÍâ£¬ÍøÒ³ÏëÒª¼ì²âÊÖ»úÊÇ·ñ°²×°APPÒ²ÊÇÓкܴóȱÏÝ£¬Òƶ¯¶ËµÄfixed¸ü²»ÒªËµ£¬ÕâЩÎÊÌâ¶¼ÐèÒªÎÒÃÇÄËÖÁ¿ª·¢É̽â¾ö
PS£ºÕâÀï³¶µÃÓеãÔ¶£¬ÎÒÃǼÌÐøÏÂÃæµÄ»°Ìâ
touchÓëclickÏìÓ¦ËÙ¶ÈÎÊÌâ
click±¾ÉíÔÚÒÆ¶¯¶ËÏìÓ¦ÊÇûÓÐÎÊÌâµÄ£¬µ«ÊÇÎÒÃǵã»÷ÏÂÀ´300ms µÄÑÓ³ÙÈ´ÊÇÊÂʵ£¬ÕâÖÖÊÂʵÔì³ÉµÄÔÒò¾ÍÊÇ
ÊÖ»úÐèÒªÖªµÀÄãÊDz»ÊÇÏëË«»÷·Å´óÍøÒ³ÄÚÈÝ
ËùÒÔclickµã»÷ÏìÓ¦Âý£¬¶øtouchÈ´²»»áÓÐÕâÑùµÄÏÞÖÆ£¬ÓÚÊÇÒÆ¶¯¶ËµÄtouchÏ൱ÊÜ»¶Ó£¬ÖÁÓÚÊó±êÂý£¬Ëû¾¿¾¹ÓжàÂý£¬ÎÒÃÇÀ´¿´¿´£º
ÏÖÔÚÎÒÃÇÔÚÊÖ»úÉÏͬʱ´¥·¢Á½Õßʼþ¿´¿´Çø±ð£º
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script id="others_zepto_10rc1" type="text/javascript" class="library"
src="http://sandbox.runjs.cn/js/sandbox/other/zepto.min.js"></script> </head> <body> <div id="d" style="width: 100px; height: 100px; border: 1px solid black;"> </div> </body> <script type="text/javascript"> var startTime; var log = function (msg) { var div = $('<div></div>'); div.html((new Date().getTime()) + ': ' + (new Date().getTime() - startTime) + ': ' + msg) $('body').append(div);
}; var touchStart = function () { startTime = new Date().getTime(); log('touchStart'); }; var touchEnd = function () { log('touchEnd');
}; var mouseDown = function () { log('mouseDown'); }; var mouseClick = function () { log('mouseClick'); }; var mouseUp = function () { log('mouseUp');
}; var d = $('#d'); d.bind('mousedown', mouseDown); d.bind('click', mouseClick); d.bind('mouseup', mouseUp); d.bind('touchstart', touchStart); d.bind('touchend', touchEnd); </script> </html>
|
²âÊÔµØÖ·:(ʹÓÃÊÖ»ú)
http://sandbox.runjs.cn/show/ey54cgqf
´Ë´¦ÊÖ»úÓëµçÄÔÓзdz£´óµÄÇø±ð£¡£¡£¡
½áÂÛ²¿·Ö½«ÔÚÏÂÆª½²Êö£¬Ã÷Ìì·¢²¼£¬Çë¼ÌÐøÖ§³Ö±¾ÍøÕ¾¡£
|