ボタンとして使用しているdivがあり、それを含むフォームを送信するために、jQueryの.on()を使用してコンテンツラッパーにデリゲートを設定していますが、クリックしてもコールバック関数が呼び出されません発生し(これを確認するためにChromeでブレークポイントを設定しています)、「Uncaught TypeError:Object#signup-button has nomethod'apply'」というエラーが発生します。
もともとは、.on()の2番目のパラメーターとして文字列を使用しているためだと思っていましたが、以前は別のイベントタイプ(クリックではなく)で同じことを行ったことがあり、うまくいったので困惑しました。
私のJSは次のようになります。
var myApp = function () {
var handleSubmitForm = function (e) {
$(this).closest('form').submit(); // this is what's not getting called w/breakpoint
}
var init = function () {
var self = this;
$('.content').on('click', '#signup-button', self.handleSubmitForm);
$('.content').on('click', '#login-button', self.handleSubmitForm);
}
return {
init: init,
handleSubmitFrom: handleSubmitForm
}
}();
そして、HTMLは次のようなものです。
<div class="content">
<form>
<div id="signup-button">
<span>SIGNUP</span>
<img src="/path/">
</div>
</form>
</div>
<script>
myApp.init();
</script>
何か案は?