2008-12-27 113 views
11

我有我目前使用的顯示隱藏div.a_type如何使用jQuery添加DOM元素?

我怎麼能修改此代碼,以便代替隱藏的div褪色, 我可以添加新的div到DOM

一個功能可按
 
jQuery(function(){ // Add Answer 

    jQuery(".add_answer").click(function(){ 
     if(count >= "4"){ 
     alert('Only 4 Answers Allowed'); 
     }else{ 
     var count = $(this).attr("alt"); 
     count++; 
     $(this).parents('div:first').find('.a_type_'+count+'').fadeIn(); 
     $(this).attr("alt", count); 
    } 

    }); 

}); 

好了,現在我有這個整理出來,我有一個問題,

我還有一個功能,如果點擊一個按鈕,刪除插入div的。 現在不工作,額外的div沒有加載到頁面加載到DOM。 我如何觸發功能來刪除這些?

jQuery的(函數(){//隱藏答案

jQuery(".destroy_answer").click(function(){ 
    $(this).parents("div:first").fadeOut(function(){ $(this).remove() }); 
    var count = $(this).parents('div:first').parents('div:first').find('.add_answer').attr("alt"); 
    count--; 
    $(this).parents('div:first').parents('div:first').find('.add_answer').attr("alt", count); 

}); 

});

+0

快速筆記,而你可以打印HTML無法通過JavaScript打印PHP自PHP是一種預處理。 – 2008-12-27 22:37:17

+0

相關知識...您如何建議我在我的打印中打印php會話數據? – adam 2008-12-27 22:40:31

回答

9

如何在最後一個div後面添加它。

$('.a_type:last').insertAfter('<div class="a_type">content</div>'); 

編輯
你可以通過一個AJAX調用獲取信息somefile.php,somefile應該再回到您在div想要的內容:

$.get('path/to/somefile.php', function(data){ 
$('.a_type:last').insertAfter('<div class="a_type">' + data + '</div>'); 
}); 

Somefile.php應是這樣的:

<?php 
session_start(); 
$sessiondata = $_SESSION['data']; 
echo "Whatever you type here will come inside the div bla bla $sessiondata"; 
?> 

編輯
好了,試試這個:

 
jQuery(function(){ // Add Answer 

jQuery(".add_answer").click(function(){ 
    if(count >= "4"){ 
    alert('Only 4 Answers Allowed'); 
    }else{ 
    var count = $(this).attr("alt"); 
    count++; 
    $('.a_type_'+count-1+'').insertAfter(' 
     Place content back here'); 
    $(this).attr("alt", count); 
} 

}); 

}); 

在AJAX只是混合,如果你仍然需要它。

2

我有另一個功能,刪除插入的div的單擊按鈕。它現在不工作,額外的div沒有加載到頁面加載到DOM。我如何觸發這個功能來刪除它們呢?

您有三種選擇來解決您最近的問題。

  1. 你可以使用liveQuery,加入時,他們一個jQuery插件,它重新應用於事件處理DOM元素。注意:這個插件只有在使用原生jQuery DOM附加/前置函數(append/prepend/after/before/insertBefore/insertAfter等)時纔有效。

  2. 或者你可以簡單地重新申請的處理程序時,新元素的添加,手工......(不是最好的選擇)

  3. 第三,而在我看來,最好的選擇是利用真棒事件授權的權力。你所做的就是將一個事件處理程序添加到任何父項中,例如,如果要將列表項目動態添加到無序列表中,而不是不斷地將事件處理程序重新應用於每個添加的項目,則只需附加事件處理程序到父,然後找到該事件的目標:

    $('ul').click(function(e){ 
        var target = e ? e.target : window.event.srcElement; 
        if(target.nodeName.toLowerCase() === 'li') { 
         // Do Stuff... 
        } 
    }) 
    
相關問題