js在控件原有的事件方法中加入自己的方法
生活随笔
收集整理的這篇文章主要介紹了
js在控件原有的事件方法中加入自己的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有沒有碰到過這樣的情況,在一個別人的頁面上,你想為某個按鈕加入自己的控制邏輯,滿足條件的情況下才執行原有的事件方法呢?
這個時候在不能修改其原有方法的情況下,先獲取控件的事件方法,并將其包裝到自己的控制方法里面,然后再重置控件的事件方法為
自己定義的這個方法,這樣就可以解決問題了。
PS:如果使用的是live或者delegate綁定的事件,就需要找到對應的綁定到的container對象,live默認是document,否則會失敗。
?
主要的控制方法:
function RideControlEvent(eid,Fun) {var C=$("#"+eid).data("events").click;var CL=C.length;var CArr=new Array();for(var i=0;i<CL;i++){CArr[i]=C[i].handler;}CArr[CL]=$("#"+eid)[0].onclick;$("#"+eid).unbind("click");$("#"+eid)[0].οnclick=function(){}var covclock=function(){if(Fun()){CArr[CL]();for(var i=0;i<CL;i++){CArr[i]();}}else{return;}}$("#"+eid)[0].οnclick=covclock; }測試方法:
function onload() {$("#T").click(function(){alert("Bind Event 1.");});$("#T").click(function(){alert("Bind Event 2.");});var myhandler=function (){alert("Outer Control Envet. The Master.");return true;}RideControlEvent("T",myhandler); }
html部分:
<body οnlοad="onload()"><input name="T" id="T" type="button" value="TTT" style="" οnclick="alert('Hard Code Event.')"/> </body>
有沒有其他的更好的方法或者寫法能夠實現同樣的功能的,歡迎評論分享。
轉載于:https://www.cnblogs.com/wancy86/p/jsEventRide.html
總結
以上是生活随笔為你收集整理的js在控件原有的事件方法中加入自己的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于 STM32 的硬件I2C
- 下一篇: poj3252