JSイベントオブジェクトの取得、イベントのソースオブジェクトの取得(Firefox,IE)
6910 ワード
忘れないようにメモをとる~~JSはイベントイベントイベントを取得し、ブラウザによって方法が異なります.
例えばIEの下、js関数ではwindowを通過する.eventは、関数にパラメータを追加する必要がなく、取得できます.
PrototypeやJQueryなどを使って、イベントのパッケージを持っています.JSライブラリを使ったほうがいいです.そうしないと、下のほうが面倒になります.
Firefox:パラメータを渡すには
IE:伝達パラメータ不要
event.srcElement
event.srcElement.id
================================================================================
IEの下で、eventオブジェクトにはsrc Element属性がありますが、target属性はありません.Firefoxではevenオブジェクトにtarget属性がありますが、src Element属性はありません.
解決策:obj(obj=event.srcElement?event.srcElement:event.target;)の使用IEの下のeventの代わりにsrc ElementまたはFirefoxの下のevent.target..同時にeventの互換性の問題に注意します.
eventのような現在のイベントの役割をキャプチャできると思います.srcElement.tagNameは、アクティブなタグ名を取得できます.注意「TD」、「TR」、「A」など、取得したタグはすべて大文字で表示されます.だから見たことのあるものを写して、覚えていないときにまた見に来ます.
function tdclick(){if(event.srcElement.tagName.toLowerCase()='td')alert("行:"+(event.srcElement.parentNode.rowIndex+1)+"列:"+(event.srcElement.cellIndex+1); }
event.src Elementは字面から以下のキーワードを見ることができます:イベント、ソース彼の意味は:現在のイベントのソース、
私たちは彼の様々な属性を呼び出すことができます.documentのようです.getElementById("")という機能は、
よくfirefoxの下のeventに聞かれます.SrcElementの使い方について詳しく説明します.
IEの下で、eventオブジェクトにはsrc Element属性がありますが、target属性はありません.Firefoxではeventオブジェクトにtarget属性があるが、src Element属性はない.しかし、彼らの役割は相当しています.
下のイベントtarget=IEの下のevent.srcElement
解決策:obj(obj=event.srcElement?event.srcElement:event.target;)の使用IEの下のeventの代わりにsrc ElementまたはFirefoxの下のevent.target.
ieでイベントを処理するwindowを直接使用する.eventオブジェクトでいいですがfirefoxではwindowはありません.eventオブジェクトの、関数がイベントを使用する必要がある場合、イベント発生時にイベントをパラメータとして関数に渡す必要があり、ieではなく、イベントオブジェクトはグローバルで、どこでもアクセスできる.以下のgetEvent()関数はfirefoxとieと互換性があり、イベントオブジェクトにアクセスする関数の開始にgetEvent()を呼び出すだけで、イベントをパラメータとして渡す必要はない.以下のコードは実験に合格しました!
function myfunc(){var evt=getEvent();var element=evt.srcElement || evt.target;}
function getEvent(){if(document.all){return window.event;//ieであればfunc=getEvent.caller;while(func!=null){var arg0=func.arguments[0];if(arg0){if((arg0.constructor==Event || arg0.constructor ==MouseEvent)||(typeof(arg0)=="object"&& arg0.preventDefault && arg0.stopPropagation)){return arg0;}}func=func.caller;}return null;}
例えばIEの下、js関数ではwindowを通過する.eventは、関数にパラメータを追加する必要がなく、取得できます.
PrototypeやJQueryなどを使って、イベントのパッケージを持っています.JSライブラリを使ったほうがいいです.そうしないと、下のほうが面倒になります.
Firefox:パラメータを渡すには
<
head
>
<
script
>
function
click1(event,str1){
alert(event
+
str1);
}
<
/
script>
<
/
head>
<
body
>
<
input type
=
"
button
"
id
=
"
abc
"
onclick
=
"
click1(event,'kenko');
"
value
=
"
click me
"/
>
<
/
body>
IE:伝達パラメータ不要
<
head
>
<
script
>
function
click1(){
alert(event.srcElement.value);
}
<
/
script>
<
/
head>
<
body
>
<
input type
=
"
button
"
id
=
"
abc
"
onclick
=
"
click1();
"
value
=
"
click me
"/
>
<
/
body>
event.srcElement
event.srcElement.id
================================================================================
IEの下で、eventオブジェクトにはsrc Element属性がありますが、target属性はありません.Firefoxではevenオブジェクトにtarget属性がありますが、src Element属性はありません.
解決策:obj(obj=event.srcElement?event.srcElement:event.target;)の使用IEの下のeventの代わりにsrc ElementまたはFirefoxの下のevent.target..同時にeventの互換性の問題に注意します.
eventのような現在のイベントの役割をキャプチャできると思います.srcElement.tagNameは、アクティブなタグ名を取得できます.注意「TD」、「TR」、「A」など、取得したタグはすべて大文字で表示されます.だから見たことのあるものを写して、覚えていないときにまた見に来ます.
event.src Elementは字面から以下のキーワードを見ることができます:イベント、ソース彼の意味は:現在のイベントのソース、
私たちは彼の様々な属性を呼び出すことができます.documentのようです.getElementById("")という機能は、
よくfirefoxの下のeventに聞かれます.SrcElementの使い方について詳しく説明します.
IEの下で、eventオブジェクトにはsrc Element属性がありますが、target属性はありません.Firefoxではeventオブジェクトにtarget属性があるが、src Element属性はない.しかし、彼らの役割は相当しています.
下のイベントtarget=IEの下のevent.srcElement
解決策:obj(obj=event.srcElement?event.srcElement:event.target;)の使用IEの下のeventの代わりにsrc ElementまたはFirefoxの下のevent.target.
ieでイベントを処理するwindowを直接使用する.eventオブジェクトでいいですがfirefoxではwindowはありません.eventオブジェクトの、関数がイベントを使用する必要がある場合、イベント発生時にイベントをパラメータとして関数に渡す必要があり、ieではなく、イベントオブジェクトはグローバルで、どこでもアクセスできる.以下のgetEvent()関数はfirefoxとieと互換性があり、イベントオブジェクトにアクセスする関数の開始にgetEvent()を呼び出すだけで、イベントをパラメータとして渡す必要はない.以下のコードは実験に合格しました!
function myfunc(){var evt=getEvent();var element=evt.srcElement || evt.target;}
function getEvent(){if(document.all){return window.event;//ieであればfunc=getEvent.caller;while(func!=null){var arg0=func.arguments[0];if(arg0){if((arg0.constructor==Event || arg0.constructor ==MouseEvent)||(typeof(arg0)=="object"&& arg0.preventDefault && arg0.stopPropagation)){return arg0;}}func=func.caller;}return null;}