<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我是FE,也是Fe

    前端來源于不斷的點滴積累。我一直在努力。

    統(tǒng)計

    留言簿(15)

    閱讀排行榜

    評論排行榜

    使用javascript觸發(fā)事件

    javascript中的事件時通過事件監(jiān)聽的機制來實現(xiàn),但是在某些情況下需要使用javascript手動觸發(fā)事件。
    <input type="button" id="btn1" name="" value="test" onclick="alert('click');" />
    <input type="button" id="" name="" value="fire" onclick="fire();" />
    如果fire按鈕來觸發(fā)test按鈕的onclick事件,fire方法可以這么寫的:
            function fire(){
                
    var evt = window.event?window.event:fire.caller.arguments[0];//獲取event對象
                var o= document.getElementById("btn1");
                
    if(o.fireEvent){//IE
                    o.fireEvent("onclick",evt);//IE下可以直接使用fireEvent方法觸發(fā)事件
                }else{//other browsers
                    //創(chuàng)建一個對象
                    var event = document.createEvent("MouseEvents");
                                
                    
    //設置event對象屬性
                    event.initMouseEvent("click"truetrue, document.defaultView, 00000
                                         
    falsefalsefalsefalse0null);
                                
                    
    //觸發(fā)事件
                    o.dispatchEvent(event); 
                }
            }

    最開始看到這些代碼是在Wrox.Professional.JavaScript.For.Web.Developers.2nd書中,我迅速想到jquery中是否有類似的實現(xiàn)?事實上我連dispatchEvent都沒有找到




    事實上我想復雜了,要觸發(fā)onclick事件,直接用oBtn.click()方法即可,沒有瀏覽器兼容問題。jquery中就是直接用這個方法的。
    $(function(){
                $(
    "#jqFire").click(function(){
                    $(
    "#btn1").click();//works
                    o.click();//also works
                });
            });

    關于上面提到的createEvent/initMouseEvent/dispatchEvent/fireEvent方法可以參考下列資料:

    http://stackoverflow.com/questions/911586/javascript-simulate-mouse-over-in-code

    http://stackoverflow.com/questions/460644/trigger-an-event-with-prototype 這個帖子介紹了幾種事件觸發(fā)的方法

    http://jehiah.cz/a/firing-javascript-events-properly 一個觸發(fā)事件方法封轉(zhuǎn)

    http://code.google.com/p/jqueryjs/source/browse/trunk/plugins/simulate/jquery.simulate.js?r=6163 jquery.simulate.js的源代碼



    posted on 2010-11-29 00:17 衡鋒 閱讀(1099) 評論(0)  編輯  收藏 所屬分類: Web開發(fā)

    主站蜘蛛池模板: 91精品视频免费| 国产又黄又爽又猛免费app| 亚洲成年人啊啊aa在线观看| 亚洲国产综合AV在线观看| 一二三四在线播放免费观看中文版视频 | 国产成人亚洲精品| 最近免费中文字幕大全| 亚洲精品无码一区二区 | h片在线观看免费| 亚洲无码在线播放| 鲁丝片一区二区三区免费| 亚洲一区二区中文| 全免费毛片在线播放| 日韩国产欧美亚洲v片| 亚洲精品无码永久在线观看| 国产精品福利在线观看免费不卡| 国产亚洲精品拍拍拍拍拍| 亚洲视频在线观看免费| 精品久久久久久亚洲精品| 日韩一品在线播放视频一品免费| 青青视频免费在线| 国产aⅴ无码专区亚洲av| 国产精品久久久久久久久免费| 亚洲熟女综合色一区二区三区| 免费A级毛片无码A∨男男| 丰满人妻一区二区三区免费视频| 婷婷精品国产亚洲AV麻豆不片| 性xxxxx免费视频播放 | 国产免费阿v精品视频网址| 久久亚洲精品成人无码网站| 午夜视频免费成人| 亚洲性线免费观看视频成熟| 亚洲无码一区二区三区| 亚洲精品无码AV中文字幕电影网站| 欧洲人成在线免费| 亚洲精品无AMM毛片| 国产成人精品日本亚洲| 大地资源在线观看免费高清| 一级毛片免费在线| 亚洲人成电影在线观看青青| 亚洲精品专区在线观看|