将html复制到另一个div

时间:2015-02-07 13:00:32

标签: javascript jquery html onclick html-lists

我正在做的是每当我点击li.opn时,我都会从.pst获取相应的#hiddenDiv个html。

如果.pst的html为空,请执行$.post()从服务器获取html

但我的问题是,如果我在<script></script>收到来自服务器的outputHTML 代码,那么document 会获得2个脚本 < / p>

  • displayDiv
  • 中的一个
  • hiddenDiv
  • 中的另一个

这会导致script函数等各种错误运行两次。

更新

这是我的My Problem Solution,但我必须使用same html,js代码两次!任何帮助???

HTML

<ul>
   <li class="opn" set="stack">Stackoverflow</li>
   <li class="opn" set="google">Google</li>
</ul>


<div id="hiddenDiv">
 <div class="pst" set="stack"></div>
 <div class="pst" set="google"></div>
</div>
<div id="displayDiv"></div>

JS

<script>
$('.opn').click(function(){
var set = $(this).attr('set');
if($('.pst[set="'+set+'"]').html() > 0){
  $('#displayDiv').html($('.pst[set="'+set+'"]').html());
}else{
   $.post(url,{},function(data){
        var outputHTML = data.output; 
        $('#displayDiv').html(outputHTML);
        $('.pst[set="'+set+'"]').html(outputHTML);
      },'json');
 }
});
</script>

UPDATE2

如果这是服务器的输出,则单击'asik'显示 2次

<div>
     <button class="asik">Click Me</button>
</div>
<script>$('.asik').click(function(){alert('asik was clicked');})</script>

1 个答案:

答案 0 :(得分:0)

试试这个:从服务器数据中删除脚本并将该脚本放在注释之后..

    if($('.pst[set="'+set+'"]').html() > 0){
      $('#displayDiv').html($('.pst[set="'+set+'"]').html());
    // server script put here..
    }else{
       $.post(url,{},function(data){
            var outputHTML = data.output; 
            $('#displayDiv').html(outputHTML);
            $('.pst[set="'+set+'"]').html(outputHTML);
    //// server script put here..
$('.asik').click(function(){alert('asik was clicked');});
          },'json');
     }