2013-05-15 72 views
0

我有一個應用程序使用AJAX和形式在模態窗口(Fancybox)爲用戶數據提供編輯工具。點擊事件沒有綁定到加載的內容在fancybox

我有一個單獨的文件設置形式 - edit.php:

<form action="services/update/7" method="post" id="update-form"> 
    <label>Update the name of this upload</label> 
    <input type="text" name="dataname" value="Test Data" /> 
    <label>Select the theme of this upload</label> 
    <select> 
    <option value="All">All Themes</option> 
    <option value="1">Example Theme 1</option> 
    <option value="2">Example Theme 2</option> 
    <option value="3">Example Theme 3</option> 
    </select> 
    <input type="submit" name="submit" value="Save Changes" /> 
</form> 

我有一個鏈接主頁:

<a href="services/edit/7" id="edit-data">Edit</a> 

我使用jQuery事件綁定到元素:

$("#edit-data").on("click", function(event)) 
{ 
    $.fancybox({ 
    'type': 'ajax', 
    'content': $(this).attr('href') 
    }); 
    event.preventDefault ? event.preventDefault() : event.returnValue = false; 
}); 

我在表單中提交按鈕的最終結合:

$("#update-form input[type='submit']").on("click", function(event)) 
{ 
    alert("clicked"); 
    event.preventDefault ? event.preventDefault() : event.returnValue = false; 
}); 

我已經添加了一個簡單的警告框到最後的點擊事件進行測試,但它永遠不會被解僱。

有什麼想法?

感謝

回答

3

使用事件代表團.on()

$(document).on("click","#update-form input[type='submit']", function(event)){ 
    alert("clicked"); 
    event.preventDefault ? event.preventDefault() : event.returnValue = false; 
}); 

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

+0

非常完美,非常感謝。 (我無法接受答案,因爲Stackoverflow規則阻止我,但會在7分鐘內完成)。 –

+0

沒問題....不客氣..':)' –

2

看起來你必須使用委託,不知道,因爲我不完全理解你的代碼:

$(document).on("click", "#update-form input[type='submit']", function(event)) 
{ 
    alert("clicked"); 
    event.preventDefault ? event.preventDefault() : event.returnValue = false; 
}); 
+0

非常感謝。 @pXL在3秒內擊敗了你,但是挺拔。 –

+0

「pXL擊敗你3秒」:) –