我有一个用作按钮的 div,为了提交包含它的表单,我使用 jQuery 的 .on() 在内容包装器上设置了一个委托,但是单击时没有调用回调函数发生(我在 Chrome 中设置断点来检查这个),并且我收到错误“Uncaught TypeError: Object #signup-button has no method 'apply'”。
我最初认为这可能是因为我使用字符串作为 .on() 的第二个参数,但我之前用另一种事件类型(不是点击)做过同样的事情,它已经奏效了,所以我很难过.
我的 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>
有任何想法吗?