2012-06-08 44 views
0

此功能工作正常(#new_user是一種形式的ID):一個提交preventionworks與形式的ID,但無法與

但是,當我嘗試添加一個類,例如:

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

它沒有。

我怎樣才能使它的工作只有當形式#new_user也有班級團隊註冊或藝術家註冊?只能是其中之一。謝謝!

+1

我要帶刺:類動態添加?您需要在添加課程後重新收集元素。當dom加載'$(「#new_user.team-registration」)'可能不可用。或者使用delegate()函數來綁定事件處理程序。 – rlemon

+0

是的類是由另一個onclick函數添加的。 你能舉個例子嗎? –

+0

保留ID的處理程序並檢查函數內部的類。沒有必要讓代表參與。 – ThiefMaster

回答

0
$("#new_user").submit(function(e) { 
    if(!$(this).hasClass('team-registration') && !$(this).hasClass('artist-registration')) { 
     return; 
    } 
    e.preventDefault(); 
    $('.terms').dialog('open'); 
}) 
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閱讀()here

+0

如果他們使用jQuery 1.7或更新的版本,他們應該使用'.on()'而不是'.delegate()'。如果您使用的是1.7以前的版本,請使用'.delegate()'優先於'.live()'。 –

+0

呼叫良好。 ...(需要更多字符) – rlemon