一行深拷贝: JSON.parse(JSON.stringify(xxx)) --js
this.$set(this.form,'authorityKinderList',data.data.authorityKinderList.join()); --vue
关于vue的 nextTick() 个人感觉是组件用得比较多 比入elementui的组件 数据更新了 但是页面没变可以一试 个人拙见 仅作参考 使用方法 this.$nextTick(function () {})
刷新当前页面:window.location.reload(); --js
ios input disabled 字体颜色修改无效 input:disabled{ color: #000; opacity: 1; -webkit-text-fill-color: #000;} --css
返回上一个页面:window.history.back(-1) --js
<template slot-scope="scope">
{{ scope.$index }} vue获取table里列表的index --vue
</template>
beetl 模板和media冲突 \@media print { --beetl和css3冲突的话在@前面加个\
beetl 模板js里面的调用方式 console.log('${patrioticConfig.topImage}')
//从beetl模板里的获取数组的方法
@if(isNotEmpty(patrioticConfig.patrioticConfigDetails)){
@for(item in patrioticConfig.patrioticConfigDetails){
var diagrams = [];
@if(isNotEmpty(item.diagrams)){
@for(obj in item.diagrams){
diagrams.push('${obj}');
@}
@}
var opt = {
name: ${item.name},
description: ${item.description},
diagramStyle: ${item.diagramStyle},
diagrams: diagrams
}
patrioticConfigDetails.push(opt);
@}
@}
beetl 模板 在html里调用字段方法 [[${bmServiceNoticeUser}]]
当前点击的list添加active兄弟节点去掉active的连写 $(this).addClass("active").siblings().removeClass("active"); --jquery
//jquery 给id为photoItem的div 循环插入div 大致是这么玩的 注意看哪个closed方法 传参的时候的操作
$("#photoItem").html("")
for(let i in obj){ //obj是请求的数据
var odiv =
'<div class="photo-list">\n'+
'<input type="checkbox" class="checkboxs" id="'+obj[i].id+'" />\n'+
'<img src="/static/images/small-ca.png" class="closed" onclick="closed(\''+obj[i].id+'\')" />\n'+
'<div class="photo-img">\n'+
' <img src="'+ obj[i].thumb +'" data-src="'+obj[i].thumb+'" class="pre" />\n'+
'</div>\n'+
'<div class="photos-wrap">\n'+
imgs +
'</div>\n'+
'</div>'
$("#photoItem").append(odiv)
}
reverse()数组倒序 --js
display flex 子集flex:1 设置超出滚动 没能正常限制 .content { flex: 1; width: 0;} --css
//动态添加的代码无法被点击的时候使用
$('body').on('click', '.unteamimg' ,function(){}) --jquery
//跳转到下一页 返回上一页的时候会跳过跳进来的页面
window.location.replace('/classroomDynamic/lesson/tidbitPhoto?lessonId='+ $("#lessonId").val() + '&classId=' + $('#classId').val()); --js
//遍历列表 --jquery
$(".opt-list").each(function(){
console.log($(this).data('value'))
});
Vue 的父组件和子组件生命周期钩子函数执行顺序
加载渲染过程父 beforeCreate -> 父 created -> 父 beforeMount -> 子 beforeCreate -> 子 created -> 子 beforeMount -> 子 mounted -> 父 mounted
子组件更新过程父 beforeUpdate -> 子 beforeUpdate -> 子 updated -> 父 updated
父组件更新过程父 beforeUpdate -> 父 updated
销毁过程父 beforeDestroy -> 子 beforeDestroy -> 子 destroyed -> 父 destroyed
路由的钩子函数?全局钩子
beforeEach:跳转路由前
to:将要跳转进入的路由对象
from:将要离开的路由对象
next:执行跳转的方法
afterEach:路由跳转后
to:将要跳转进入的路由对象
路由独享钩子:
routes: [
{
path: '/xxx',
component: xxx,
beforeEnter: (to, from, next) => {
}
}
]
jQuery 在微信端h5页面的audio标签在ios播放没有声音
<audio id="myaudio" src="xxx.mp3" preload="auto" loop="loop" autoplay="autoplay"></audio>
//播放音乐
var audio = $('#myaudio');
var isPlaying = false;
function playAudio() {
var audio = $('#myaudio');
if (audio.attr('src') == undefined) {
audio.attr('src', audio.data('src'));
}
audio[0].play();
isPlaying = true;
}
$(function(){
playAudio();
document.addEventListener("WeixinJSBridgeReady", function () {//重点在这里
WeixinJSBridge.invoke('getNetworkType', {}, function (e) {
//network = e.err_msg.split(":")[1]; //结果在这里
playAudio();
});
}, false);
})
前端 js vue 项目中遇到的有的没的
于 2023-12-27 16:50:11 首次发布