イベントリスナーの部分で、「load」以外に「change」も必要になったので関数にしたいのですが、
引数の関数の指定方法がわかりません。
どうすればいいのでしょうか。よろしくお願いします。
【イベントリスナーを関数にする前】
function hoge(){
this.view = function(){
var _this = this;
window.addEventListener( 'load',function(){ _this.foo()}, false );
}
this.foo =function(){
var txt = document.createTextNode( this.moji );
document.body.appendChild( txt );
}
}
var a =new hoge();
a.moji="テスト";
a.view();
【やってみたこと】
function hoge(){
this.view = function(){
var _this = this;
var func = function(){ _this.foo()};
this.addListener( 'window', 'load', func );
}
this.addListener = function(elem,type,func){
elem.addEventListener( type,func, false );
}
this.foo =function(){
var txt = document.createTextNode( this.moji );
document.body.appendChild( txt );
}
}
var a =new hoge();
a.moji="テスト";
a.view();
No.2ベストアンサー
- 回答日時:
単純に
this.addListener( 'window', 'load', func );
を
this.addListener( window, 'load', func );
にするのではだめなの?
ありがとうございます。
お返事が遅くなってすみません。
「'window'」を「window」にするとできました。
windowには、特別な意味があるみたいですね。
知りませんでした。
本来なら、問題が解決したので質問を閉め切りたいのですが、
load以外のイベントでエラーが出るかもしれません。
それを試してから質問を閉め切ることにします。
No.3
- 回答日時:
onchange の要素は、どこで指定する?まさか window にではなさそうですが・・・
a.view ();が呼ばれる度に、同じイベントをくっつけるのは、どうでしょう?
1回きりの呼び出しで、しかもbodyの最後に追加していくだけなのなら、別な方法がよいかも ?
細かいことですが、body要素の直下に、テキストノードがあるのも、どうでしょう?
this.foo を、xxxxx.addEventListner ('change', this.foo.bind(this), false);みたいにするのは、どうでしょう?
こそっと、違いがわかりません。
ありがとうございます。
お返事が遅くなってすみません。
今回の例は、今書いているプログラムのわからないところだけを抜き出して書きました。
だから、body要素の直下にテキストノードがあります。
'window'をwindowにすると、文字が表示されました。
load以外のイベントも試してから、この質問を終わりにしようと思っています。
ありがとうございました。
No.1
- 回答日時:
いまいち何をしたいかわからないのですが、
loadをaddEventListerのをelemにではなくwindowにしてみては?
ありがとうございます。
>いまいち何をしたいかわからないのですが、
前回、別の質問をしました。
http://oshiete.goo.ne.jp/qa/8557126.html
そして、解決したのでプログラムを書いてみました。
「load」を教えてもらった方法で書きました。
次に、「change」も同じ方法で書きました。
同じイベントリスナーを使うなら、関数にしてしまえ!と思って関数にしたのですが、
引き数に入れた関数が動きません。
そこで、今回の質問をしました。
「window.addEventListener( 'load',function(){ _this.foo()}, false );」の部分を
「load」以外のイベントで使えるようにするには、これをどのように書けばいいのでしょうか。
その場合の、引き数の関数はどのように指定すればいいのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpでの文字の点滅表示
-
functionから別のfunctionを実...
-
idを使わずにonclickで自身の要...
-
要素名がスペースを含む場合のj...
-
jslintのエラーについて質問
-
jQueryの"return false"の役割...
-
【JavaScript】変数の出力について
-
関数でy=g(x)のgとは何の略です...
-
javascriptのソースでvar resul...
-
XMLHttpRequestオブジェクトが...
-
小数点以下を5刻みで表示
-
jqueryの変数を関数の外に出す方法
-
jQueryでzipを解凍読み込みする...
-
即時関数でプライベート変数的...
-
シューティングゲームの作り方
-
同じIDで定義した要素の配列を...
-
<a>タグのテキストを取得
-
JavaScriptで文字列の特定文字...
-
jspからjavascriptの変数引継ぎ
-
C#テキストボックスの文字を配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
idを使わずにonclickで自身の要...
-
functionから別のfunctionを実...
-
関数でy=g(x)のgとは何の略です...
-
jslintのエラーについて質問
-
クリックすると上に開くアコー...
-
XMLHttpRequestでキャッシュを...
-
ajax反映後のjqueryが動かない
-
function(e)の意味を教えてくだ...
-
要素名がスペースを含む場合のj...
-
jQueryの :not() .not() が有効...
-
jQueryでzipを解凍読み込みする...
-
関数名をテキストから読み込む...
-
getElementByIdを使用したグロ...
-
jqueryuiのdialog
-
jqueryのグローバル変数とロー...
-
jQuery 同じ処理を関数にまとめ...
-
XMLHttpRequestオブジェクトが...
-
addEventListener()でリスナー...
-
drawImageの描画順序の指定につ...
-
javascript(jQuery)でセル内...
おすすめ情報