js 模仿jquery的寫法

來源:互聯網
上載者:User

測試代碼:

(function(){var p=new PEvent(document);p.click(function() {//alert("單擊");//alert(p.style);var html="";for ( var item in document) {html+=item+':'+document[item]+"\r\n";}//alert(html);});p.dblclick(function() {alert("雙擊");});p.contextmenu(function(event) {try{var x=event.clientX;var y=event.clientY;var menu=g("menu");//判斷座標var width=document.body.clientWidth;var height=document.body.clientHeight;x=(x+menu.clientWidth)>=width?width-menu.clientWidth:x;y=(y+menu.clientHeight)>=height?height-menu.clientHeight:y;//alert("可視高度:"+height+",滑鼠高度:"+y);menu.style.top=y+"px";menu.style.left=x+"px";menu.style.display="block";}catch(e){alert(e);}return false;});function PEvent(dom){this.x=function() {this.style.css=dom.style;}this.click=function(fn){dom.onclick=fn;this.x();}this.dblclick=function(fn){dom.ondblclick=fn;}this.contextmenu=function(fn){dom.oncontextmenu=fn;}this.style=new Po();};function Po() {this.name=new Object();this.id=new Object();this.css=new Object();}})();function g(id){return document.getElementById(id);}

在jquery中,處理事件的時候,都可以匿名方法來寫,例如:

obj.click(function(){

alert("hello");

});

上訴這種形式。

在方法傳遞參數的時候,可以傳遞fun 方法。

調用呢,就可以這樣調用:

this.dblclick=function(fn){dom.ondblclick=fn;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.