0

此函数工作正常(#new_user 是表单的 id):

$("#new_user").submit(function(e) {
  e.preventDefault();
  return $(".terms").dialog("open");
});

但是当我尝试添加一个类时,例如:

$("#new_user.team-registration").submit(function(e)

它没有。

只有当 form#new_user 也有班级团队注册或艺术家注册时,我怎样才能使它工作?只能是其中之一。谢谢!

4

2 回答 2

3

因为在实际处理该行时该类尚未分配给表单元素,所以选择器不返回任何内容......您可以做的是使用该.delegate()函数(类似于您之前期望的 .live() 所做的)。这是一个例子:

$("body").delegate("#new_user.team-registration, #new_user.artist-registration", "submit", function() {
  return false; // in jQuery this preventsDefault and stops all propagation 
});

或者,您可以在向其添加类时将表单元素存储在变量中,然后引用它(这样您就不必遍历 DOM 两次)..

可以在 .delegate() 上阅读更多内容

于 2012-06-08T14:38:44.020 回答
0
$("#new_user").submit(function(e) {
    if(!$(this).hasClass('team-registration') && !$(this).hasClass('artist-registration')) {
        return;
    }
    e.preventDefault();
    $('.terms').dialog('open');
})
于 2012-06-08T14:28:27.017 回答