domHtml += "<div class=\"PopupWindow_end\" onclick=\"changeQdgDetail(this, '${res.ccssbh}')\" >"这么写对吗
时间: 2023-07-06 22:35:20 浏览: 81
这样写也是可以的,但是同样存在使用过多字符串连接符"+"的问题。如果你想保留这种写法,可以使用反斜线"\\"来转义字符串中的双引号,以避免语法错误。修改后的代码如下:
```
domHtml += "<div class=\"PopupWindow_end\" onclick=\"changeQdgDetail(this, '${res.ccssbh}')\" >";
```
但是,为了提高代码的可读性和性能,建议使用模板字符串和事件代理的方式来编写代码,如我在上一个回答中所示。
相关问题
$(".img").hover( function () { var dom = $(this).siblings('.PopupWindow'); var ccssbh = dom.children('span').text(); var divDom = dom.children('div'); $.ajax({ success: function (result) { divDom.html(''); var data = result.data.data; var domHtml = <div class=PopupWindow_top> + <span> + data.mc + </span> + </div> domHtml += <div class=PopupWindow_bottom> + <div class=PopupWindow_bottom_item>+ <span> + 配 + </span> + <span> + data.pqname + "</span> + </div>" + "<div class="PopupWindow_bottom_itemt">" + "</div>" divDom.append(domHtml); dom.removeClass('PopupWindowNone'); dom.addClass('PopupWindowblock'); }, function () { var dom = $(this).siblings('.PopupWindow'); dom.removeClass('PopupWindowblock'); dom.addClass('PopupWindowNone'); 修改hover鼠标能够放在在PopupWindow里面
可以将鼠标移入事件绑定到 ".PopupWindow" 元素上,而不是 ".img" 元素上。具体来说,可以修改代码如下:
```
$('.PopupWindow').hover(function () {
var dom = $(this);
var ccssbh = dom.children('span').text();
var divDom = dom.children('div');
$.ajax({
success: function (result) {
divDom.html('');
var data = result.data.data;
var domHtml = '<div class="PopupWindow_top"><span>' + data.mc + '</span></div>';
domHtml += '<div class="PopupWindow_bottom"><div class="PopupWindow_bottom_item"><span>配</span><span>' + data.pqname + '</span></div><div class="PopupWindow_bottom_itemt"></div></div>';
divDom.append(domHtml);
dom.removeClass('PopupWindowNone');
dom.addClass('PopupWindowblock');
},
error: function () {
dom.removeClass('PopupWindowblock');
dom.addClass('PopupWindowNone');
}
});
}, function () {
var dom = $(this);
dom.removeClass('PopupWindowblock');
dom.addClass('PopupWindowNone');
});
```
这样,当鼠标移入 ".PopupWindow" 元素时,就会触发 Ajax 请求,获取数据并更新弹出框内容;当鼠标移出 ".PopupWindow" 元素时,就会隐藏弹出框。
优化 domHtml += "<div onclick=\"changeQdgDetail(this, '${res.ccssbh}')\" class=\"PopupWindow_end\" >" + " <span>" + "展开详情" +" " +"∨"+ "</span>" + "</div>"
这段代码中存在的问题是在字符串拼接时使用了大量的字符串连接符"+",这会导致性能下降。可以使用模板字符串``来简化代码,同时使用事件代理来绑定click事件,避免为每个元素都绑定事件处理程序,从而提高性能。修改后的代码如下:
```
domHtml += `<div class="PopupWindow_end" data-ccssbh="${res.ccssbh}">
<span>展开详情 ∨</span>
</div>`;
```
同时,为父元素添加click事件代理:
```
document.addEventListener('click', function(e) {
if (e.target && e.target.classList.contains('PopupWindow_end')) {
changeQdgDetail(e.target, e.target.dataset.ccssbh);
}
});
```
阅读全文