ここでこのエラーを回避しようとしていますが、これは私にとって問題です...
基本的に、私は最初からオブジェクトとして変数を定義しています。オブジェクトにはjQueryを利用する関数がありますが、ページの読み込み中にオブジェクトのプロパティを設定する必要があります(これはjQueryドキュメントが準備される前に設定する必要があるようです)。
とにかく.jsファイルページの先頭に表示されます。
var MyObject = {
Property1 : null,
Property2 : null,
Property3 : null,
Property4 : 0,
Initialize: function() {
// Do some code in here...
if ($('#some-element').length)
{
MyObject.Property1 = $('#some-element').data('property');
$('#some-element').click(MyObject.On_ClickProperty1);
}
},
On_Click_Property1: function() {
alert('You Clicked ' + MyObject.Property1);
if (MyObject.Property2 !== null)
alert('Property2 = ' + MyObject.Property2);
}
}
jQuery(document).ready(MyObject.Initialize);
これは非常に小さな例です。しかし、今、私は(体内の)どこかに実際のページにMyObject.Property2を設定し、それを更新したいと思います、とInitialize
機能が実際にDocument.Readyまで実行されませんので、それは、正常に動作する必要があります。だから私は、私は.jsファイルをラップする場合、私は今取得問題は、...今 TypeError: $ is not a function
ページの読み込みである...ドキュメントのボディに
<script>
MyObject.Property2 = 'This Is Property 2';
</script>
をこのようなものを置きますそのような次のコードで:
(function($){
var MyObject = {
Property1 : null,
Property2 : null,
Property3 : null,
Property4 : 0,
Initialize: function() {
// Do some code in here...
if ($('#some-element').length)
{
MyObject.Property1 = $('#some-element').data('property');
$('#some-element').click(MyObject.On_ClickProperty1);
}
},
On_Click_Property1: function() {
alert('You Clicked ' + MyObject.Property1);
if (MyObject.Property2 !== null)
alert('Property2 = ' + MyObject.Property2);
}
}
jQuery(document).ready(MyObject.Initialize);
})(jQuery);
私はもはや、このエラーが表示されていない、しかし、MyObject.Property2
が設定されていないとProperty2のアラートはnullを与えます。私は適切にこれを実現するにはどうすればよい
?私は$
はTypeErrorを得ることはありません、と私はまだ(プロパティ関数内にないjQuery
)$
を使用することができ、かつMyObject.Property2のアラートが現れる前に、私は実際にProperty2
の値を設定することができるように?あなたはjqueryの無競合モードでロードされているよう
正気を行うことができますチェック:jQueryライブラリは、このコードが実行時にロードされますか? (コンソールに404などはありません)。あなたのカスタム.jsファイルは、 '
'セクションのjQueryライブラリの後にリストされます。 –はい、jquery.min.jsファイルがロードされた後、custom.jsファイルがすべて先頭に表示されます。また、MyObject.Property2を設定するインラインスクリプトはbodyタグ内にあります。最初のメソッドはエラーを返しますが、変数を適切に設定しますが、2番目のメソッドはエラーは発生しませんが、変数は設定されません。どちらの方法が正しいか? –
これらのどちらも私の望む最終結果ではありません。私はそれが必要なものの半分しか持っていません...エラーはなく、変数を設定します... –