javascript - インライン要素の onclick イベントに関してエラーが発生するのはなぜですか?
天蓬老师
天蓬老师 2017-07-05 10:37:03
0
11
2167

「定義されていない表示」をクリックするとエラーが報告されます。

なぜ show() 関数を $(function(){}) の外に置くのでしょうか?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(11)
学霸

onclick="show()" は window.show() を実行します

いいねを押す +0
typecho

追加する HTML は文字列であり、onclick のイベントは show() です。特定のオブジェクトのメソッドが指定されていない場合、デフォルトでグローバル メソッドが使用され、$(function(){}) はクロージャです。

いいねを押す +0
给我你的怀抱

こうやって書いてください

リーリー

show() を直接呼び出すと、 onclick="show()" と記述すると、ドキュメントの読み込み後に $(document).ready() が実行されます。クリックして show() をトリガーします。このとき、ウィンドウの下で show() を検索します。もちろん、結果は $(funciton(){}) に書き込むこともできます。これ:
リーリー

いいねを押す +0
刘奇

show 関数は匿名関数内にあり、onclick バインディングはグローバルに検索するため、匿名関数で定義されたものは見つかりません

いいねを押す +0
Peter_Zhu

onclick は、window オブジェクト (window.shou()) の下にカスタム関数 show() を見つけます。 。したがって、これは $(function(){}) 関数の外側に配置する必要があります。 。したがって、将来的には、すべてのカスタム関数を $(function(){}) の外側に記述し、その後の処理と呼び出しの一部を $(function(){}) の内側に配置して、ドキュメントの作成後に確実に呼び出されるようにする必要があります。ロードされました

いいねを押す +0
黄舟

平たく言うと、$(function(){}) はドキュメントが実行された後にコンテンツを実行することです
そして、ドキュメントがロードされた後にバインディングを追加しました。 html実行時にShow()が見つからなかったので採用してください

いいねを押す +0
某草草

実際、この問題は js のスコープによって引き起こされます。 onclick="show()" は window で show() メソッドを実行しますが、Window にはそのようなメソッドがありません。

いいねを押す +0
伊谢尔伦

$(function(){}) = $.ready() つまり、関数 show はページがロードされた後に宣言されますが、その行の onclick イベントに show() を記述します。この時点ではshow関数はまだステートメントされていないため、未定義として報告されます

いいねを押す +0
typecho

showメソッドの定義をleftMenuの上に置きます

いいねを押す +0
扔个三星炸死你

任せる必要があります~~

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート