[英]Execute Jquery on div in ajax loaded contents
我有一個名為forms.php的頁面,其頭部包含一個javascript,還有一個名為fadeinContents的div
我使用Ajax將名為#sections1的文件的一部分加載到該div中,效果很好
但是當我單擊它們時,我需要對fadeinContents中的已加載內容執行一些jQuery。 我讀過其他文章,但聽不懂。
這是我的檔案
表格
<html>
<head>
<script type="text/javascript" src="scripts/scripts.js"></script>
<script type="text/javascript" src="scripts/login.js"></script>
</head>
<body>
<div class="login_link">login</div>
<div class="signup_link">signup</div>
<div class="fadeinContents">
<!--Loaded contents goes here -->
</div>
</html>
這是我的Jquery
$(document).ready(function(e) {
$('#fadeinContents').load('forms.php #sections1');
$('.login_link').click(function(e) {
$('#fadeinContents').load('forms.php #sections1');
});
$('.signup_link').click(function(e) {
$('#fadeinContents').load('forms.php #sections2');
});
$('.recoverPassword').click(function(e) {
$('#fadeinContents').load('forms.php #sections3');
});
});
載入的文件包含
<div class="sections1">
<div class="signup">
<!-- Signup Forms Here -->
</div>
</div>
<div class="sections2">
<div class="login">
<!-- loginForms Here -->
</div>
</div>
<div class="sections3">
<div class="recoverPassword">
<!-- recover form Here -->
</div>
</div>
我的問題是,“恢復密碼”單擊功能由於已加載而無法正常工作,請問我該如何使其工作?
提前thnx ..
那么您應該以其他方式綁定該事件。 這樣嘗試
$('.fadeinContents').delegate('.login_link', 'click', function(e) {
$('#fadeinContents').load('forms.php #sections3');
});
其余的等等。
這意味着click事件綁定在.fadeinContents
上,但是在觸發時,它會檢查目標是否為.login_link
,如果是,它將觸發給定的回調。 因此,將事件處理程序委派給更高的節點將確保無論何時加載/更改節點的內容或您擁有多少元素,如果它們均符合事件處理程序將觸發的條件。
委派事件也可以提高內存效率。 例如,如果您有一百個單元格要添加單擊事件,則執行$(".cell").click(
將在每個$(".cell").click(
附加一個事件偵聽器。例如,使用$("body").delegate('.cell', 'click',
將其委托給body
$("body").delegate('.cell', 'click',
將只附加一個事件(然后在其中進行一些循環和檢查,這是真的),但最終只會得到一個事件偵聽器,這無關緊要您以后添加或刪除多少個節點,它們將觸發該點擊事件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.