2017-05-26 20 views
1

私は内部に関数showProductを持つjsファイルを持っています。私のHTML文書で関数が定義されていませんWordPress jQuery

私はこのJavaScriptを持って送信ボタンを持っている:

onclick="showProduct(document.getElementById('suggest1').value);" 

これはsuggest1のidの入力フィールドの値を取得し、機能showProductに を渡されます。これはうまく動作します!しかし、すぐに私はjqueryの後&前にこれを追加する:

(function($) { .... })(window.jQuery); 

私が取得:キャッチされないにReferenceError:showProductがHTMLButtonElement.onclick

私はこの仕事を得ることができる方法上の任意のアイデアをで定義されていませんか?私はこの関数にすべてのjQueryをWordPressで動作させるために置く必要があります。

おかげ

+1

* "WordPressで動作させるには、この関数にすべてのjQueryを入れる必要があります" * - 実際はそうではありません。関数の中で '$'を使い続けたい場合は、関数内の最初の行として 'var $ = jQuery;'が最も簡単に修正されます。 – JJJ

答えて

1

あなたがon*イベントを使用しますが、呼び出している関数がwindowの範囲でなければならない属性。あなたがそのIIFEにあなたのコードを置くとき、それはもはやケースではありません。ここで注意すべき

<button class="foo">Foo</button> 
(function($) { 
    $('.foo').click(function() { 
    var value = $('#suggest1').val(); 
    // do something with the value here... 
    }); 
})(window.jQuery); 

ことの一つは、ボタンのクリックは、任意の親<form>要素を提出するということですので、あなたはすぐにそれを提出しない場合、代わりにそのフォームのsubmitイベントにフックする必要があるかもしれません。

関連する問題