2008-12-27 115 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... 
        } 
    }) 
    
相关问题