【发布时间】:2015-02-07 13:00:32
【问题描述】:
我所做的是,每当我单击 li.opn 时,我都会从 #hiddenDiv 获得相应的 .pst 的 html。
如果 .pst 的 html 为空,则执行 $.post() 以从服务器获取 html。
但我的问题是,如果我在outputHTML 中收到来自服务器的<script></script> 代码,那么document 得到2 个脚本
-
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>
更新2
如果这是来自服务器的输出,则 'asik 被点击' 显示 2 次strong>
<div>
<button class="asik">Click Me</button>
</div>
<script>$('.asik').click(function(){alert('asik was clicked');})</script>
【问题讨论】:
-
你的服务器 html 是什么?
-
大声笑 php @AhosanKarimAsik
-
你的输出代码表单服务器是什么?
-
.e.g
<div><button class="asik">Click Me</button></div><script>$('.asik').click(function(){alert('asik was clicked');})</script>@AhosanKarimAsik -
如果从服务器数据中删除脚本,有什么问题吗?如果没有问题,则通过正则表达式或 dom 解析器删除脚本..
标签: javascript jquery html onclick html-lists