ホームページ > ウェブフロントエンド > jsチュートリアル > parameters_javascript スキルを使用した JavaScript イベント属性バインディング関数

parameters_javascript スキルを使用した JavaScript イベント属性バインディング関数

WBOY
リリース: 2016-05-16 18:55:34
オリジナル
1239 人が閲覧しました

たとえば、次の呼び出しメソッドは使用できません。 element.onclick = test(arg1, arg2); または element.onclick = test のみです。は別の方法で実装されているため、パラメータを関数に渡すことはできません。大量のオンライン情報を参照すると、コードを例としてこの問題を解決する方法は次のとおりです。

コードをコピー コードは次のとおりです:

function Handler() { };
Handler.prototype = {
/*
*eventType イベントを要素にバインドします要素を指定し、handler イベントハンドラーを使用します。 処理
* IE や Firefox などのブラウザに対応
*
* @param 要素 イベントが登録されているオブジェクト (Object)
* @parameventType登録されたイベント タイプ (文字列)、いいえ Add "on"
* @param handler イベント ハンドラー (関数)
*/
registerEvent: function(element,eventType,handler) {
if(element. attachEvent) { //レベル 2 DOM イベント処理
element.attachEvent('on'eventType, handler);
}else if (element.addEventListener) {
element.addEventListener(eventType, handler, false) ;
} else { //レベル 0 DOM のイベント処理
element['on'eventType] = handler;
}
* への参照を取得しますパラメーターを持つイベント ハンドラー
*
* @param obj バインドする必要があるイベント処理関数の所有者、null はウィンドウ オブジェクトを表します
* @param func 必要なイベント処理関数の名前バインドされる
* @param ... 3 番目のパラメータ 先頭はバインディング イベント ハンドラ関数のパラメータで、0 ~
*/
bind: function(obj, handler) {
obj = obj || ウィンドウ;
var args = [ ];
for(var i =2; i
args.push(arguments[ i]);
}
return function() { handler.apply(obj, args) };
}
}
は次のように使用できます:
function show(txtObj) {
alert(txtObj.value);
txtObj .focus();
window.onload = function(){
var handler = new Handler();
handler.registerEvent($(" txt"), "change", handler.bind(null,show,$("txt")));//2 レベルのイベント モデルの使用
//$("txt").onchange = handler.bind(null,show,$("txt"));//JavaScript イベント属性メソッド
}

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート