一、$.ajax中无法使用this调用当前对象中的方法
ajax中当前对象为jquery,所以没有需要调用的方法,需要在ajax外将需要调用的对象存储,然后再在ajax中调用
var that=this;
$.ajax({
success: function (req) {
that.clickEmergencyTeam
}
})
二、forEach方法中this对象变为window
forEach(回调函数,回调函数中this的值),如果不写第二个参数,则默认是全局对象
三、ajax请求,使用post请求,无法将对象自动转换为json格式发送,发送格式为默认的form-data
使用Json方法,将对象手动转换为json
JSON.stringify(需要转换的对象)
let reqData = {}
$.ajax({
dataType: "json",
contentType: "application/json",
data: JSON.stringify(reqData),
})
四、迭代对象属性
使用Object.keys(对象)获取对象属性名的一个list,然后迭代属性名的List集合来,使用object[属性名]来获取对应的值
let paramKeys = Object.keys(param);
for(let key in paramKeys){
value = param[key]
}
五、使用鼠标覆盖事件弹出信息窗体,鼠标离开后消失业务时,无法显示窗体的问题
创建的窗体位置需要在鼠标的右下侧,离鼠标要一定的距离,因为鼠标移动的时候触碰到弹出窗口,算作是离开目标
//将窗体代码放到需要的位置
<div id="showDiv" style="position: absolute; background-color: white; width:300px;white-space:normal; word-break:break-all;overflow:hidden;"></div>
//为某个dom节点绑定鼠标移入移出事件
value.onmousemove = this.mouseOnShow;
value.onmouseout = this.mouseOutHide;
//移入事件
mouseOnShow: function (){
let showDiv = document.getElementById('showDiv');
showDiv.style.left = event.clientX + 20 + 'px';
showDiv.style.top = event.clientY + 10 + 'px';
showDiv.style.display = 'block';
showDiv.innerHTML = '显示的内容';
}
//移出事件
mouseOutHide : function (){
let showDiv = document.getElementById('showDiv');
showDiv.style.display = 'none';
showDiv.innerHTML = '';
},
六、追加样式的方式
在为某一个模块追加css样式的时候可以使用
dom节点.style = dom节点.style.cssText +'新增的样式';
七、在一个dom节点中添加自定义属性
节点.setAttribute('属性名',属性值)
节点.getAttribute('属性名')