在jsp中调用js的时候遇见了这样一个问题,运行的时候js中的中文乱码,解决方案:在jsp调用中<script type="text/javascript" charset="gbk" src="#"></script>加上charset="gbk"就可以了。
事件代理的意思就是onclick,onmouseover,onmouseout,通过父级来实现事件处理。
下面是我摘要的自己代码的一部分
红色标记意为动态生成;
绿色标记意为事件代理。
eg:
【jsp】
<div class="selected-view">
<div id="selectedViewList" class="clearfix">
</div>
</div>
【js】
// 更新总数和总价格,已选浮层
function getTotal() {
var selected = 0, price = 0, html = '';
for (var i = 0; i < tr.length; i++) {
if (tr[i].getElementsByTagName('input')[0].checked) {
tr[i].className = 'on';
selected += parseInt(tr[i].getElementsByTagName('input')[1].value); //计算已选商品数目
price += parseFloat(tr[i].getElementsByTagName('td')[4].innerHTML); //计算总计价格
html += '<div><img src="'+tr[i].getElementsByTagName('img')[0].src+'"><span class="del" index="'+i+'">取消选择</span></div>';// 添加图片到弹出层已选商品列表容器
}else{
tr[i].className = '';
}
}
selectedTotal.innerHTML = selected; // 已选数目
priceTotal.innerHTML = price.toFixed(2); // 总价
selectedViewList.innerHTML = html;
if (selected==0) {
foot.className = 'foot';
}
}
//已选商品弹层中的取消选择按钮
selectedViewList.onclick = function (e) {
var el = e.target || e.srcElement;
if (el.className=='del') {
var input = tr[el.getAttribute('index')].getElementsByTagName('input')[0]
input.checked = false;
input.onclick();
}
}