2012-07-17 56 views
1

我有一個現場活動提交和點擊:jQuery的.live()事件不工作的Firefox和IE

<form class='myform'> 
    <input type='text' name='fruit'> 
</form> 
<a href='#' class='formSubmit'>Submit</a> 

我有jQuery的調用形式通過輸入或點擊標籤提交

$('a.formSubmit').live('click', function(){ 
    $('form.myform').submit(); 

    return false; 
}); 

$('form.myform').live('submit', function(){ 
    //conditional statements here 
}); 

所以問題是,我的jQuery腳本在除IE和FireFox以外的所有瀏覽器上都能正常工作。看來.live()方法是原因。因爲當我刪除live()方法並執行它只需單擊()方法它將工作。現在我需要在live()方法上做,因爲我會用新添加的元素和表單來實現功能。有什麼辦法可以讓它在Firefox和IE上運行嗎?

謝謝!

+2

jQuery'.live()'在版本1.7中不推薦使用。+。改用'.on()'。 – honyovk 2012-07-17 19:23:43

+0

你得到了什麼錯誤? – j08691 2012-07-17 19:24:47

+0

你試圖使用FF和IE的什麼版本?另外,你使用的是什麼版本的jQuery? – honyovk 2012-07-17 19:33:21

回答

1
http://api.jquery.com/on/

$('#not_dynamically_generated_parent').on('click','a.formSubmit', function(){ 
    $('form.myform').submit(); 

    return false; 
}); 

$('#not_dynamically_generated_parent').on('submit','form.myform', function(){ 
    //conditional statements here 
}); 
+0

對於'$('#not_dynamically_generated_pa​​rent')'我喜歡使用'$(document)'。它很容易鏈接多個事件。 – honyovk 2012-07-17 19:31:32

+0

@ MBJ ..取決於用途。我更喜歡一些嚴格的父元素來保存一些JS處理工作,而我的殘酷滑塊遍佈整個頁面;) – 2012-07-17 19:33:42

+0

「取決於使用」 - 我同意100%。 – honyovk 2012-07-17 19:35:06

0

哈,我找到了解決辦法。我的嫌疑犯根本不對。 jquery live()方法工作正常,唯一讓腳本無法正常工作的是這個event.preventDefault();,如果你在事件方法中有類似的東西,它不會在firefox上工作,也就是說...感謝貢獻的人。

+0

我必須強烈反對你的聲明「......如果你有......」'.preventDefault();'「......在事件方法中,它不會在Firefox上工作,即...」。我用它所有的時間; jQuery被設計爲跨瀏覽器。 – honyovk 2012-07-17 21:44:45

相關問題