所以我有一个jQuery AJAX调用,在单击时构建一个配置文件。它只会被调用一次所以我认为我可以将脚本弹出到生成的html中,而不是将其放在成功 AJAX调用中。
while($row = mysql_fetch_array($result)){
$content .= '
<div class="content cols-1 points">
<h3>Points</h3>
<span>
<b class="points_1" data-points="'.$row['p_1'].'"></b>
<b class="points_2" data-points="'.$row['p_2'].'"></b>
<b class="points_3" data-points="'.$row['p_3'].'"></b>
<b class="points_4" data-points="'.$row['p_4'].'"></b>
</span>
</div>
';
}
$content.= '
<script type="text/javascript">
$(".points b").click(function(){
setDots(this);
})
</script>
';
echo $content;
感觉更干净,它只在我拥有所需的HTML时执行,并且我没有在页面加载时拥有尽可能多的JavaScript ......但这是不好的做法吗?
如果有任何缺陷,请解释任何缺陷。谢谢!
答案 0 :(得分:1)
我没有看到任何特殊的缺陷,除了每一个AJAX响应返回JS的几行,这增加了(非常轻微)AJAX响应的大小,这反过来又给了很多流量,增加带宽使用。那个,以及从AJAX返回JS的事实总是令人不悦......
所以我会在使用文档上的事件处理程序进行AJAX调用的页面中编写它,如下所示:
$(document).on('click','.points b', function() { setDots(this) });