javascript 设置值-web后端开发过程中踩过的坑以及一些技巧和方法(持续更新)

2023-08-29 0 5,466 百度已收录

1、iOS上浏览器上使用jQuery不允许storm代理到文档 $(document).on("click", "selector", function(){});

以上绑定可能无法点击。 解决办法是在这段代码之前添加一串代码:

$(body>*).bind("点击", function(){....}); 2、点击移动端的输入框(input),防止弹出手机输入法按钮

在开发移动页面时,有时我们经常会使用自己定义的输入按钮,而不是弹出自己的按钮,所以我们可以在点击风暴中添加如下代码:

$("选择器").click(function(){ document.activeElement.blur(); }); 3、iOS平台上的按钮类型输入会有默认样式。

使用以下代码可以在 Android 上运行javascript 设置值,但在 iOS 上不起作用。

border: none;
outline: none;
background-color: 颜色;

但iOS上需要添加一个:

-webkit-外观:无;

此属性也适用于 Android。

4. 移动Retina屏幕的1px解决方案(iOS)

我在网上找到了很多解决方案,所以这里是链接

移动Retina屏幕上各大主流网站的1px解决方案

如何在Vue项目中使用vw实现移动适配5、iOS浏览器设置overflow:scroll后滑动不流畅; 感觉就像冻结了

目前这在Android和PC上没有问题,但在iOS上有问题。 解决办法是添加属性:

-webkit-overflow-scrolling:触摸;

参考:

[兼容性]ios上设置溢出:滚动不滚动bug

iOS Safari浏览器上溢出:滚动元素无法滑动的bug解决办法

iOS safari 浏览器上的溢出:滚动元素无法滚动 bug 注意事项

解决iOS 6上页面使用overflow:scroll滑动、冻结的问题。元素设置为display:inline-block后; 元素之间将形成宽度

javascript 设置值-web后端开发过程中踩过的坑以及一些技巧和方法(持续更新)

解决办法是设置CSS属性font-size: 0; 在包含这些元素的父元素上

7、Angular CLI和Vue CLI打包的项目不在根目录,存在找不到资源的问题!

module.exports = {
  baseUrl: process.env.NODE_ENV === 'production'
    ? '/henjievue/'
    : '/'
}

对于3.3以上版本,添加以下代码:

module.exports = {
  publicPath: process.env.NODE_ENV === 'production'
    ? '/henjievue/'
    : '/'
}

八、用于处理资产文件的 Angular CLI 开发。

asset文件夹上面的内容在构建后不参与打包,只是完整复制,所以开发过程中路径要写成绝对路径,如下代码所示:

9.解决ios10及以上Safari无法严格禁止缩放的问题

//以下代码是为了解决在iOS 10系统之后设置meta来禁止缩放失效的问题
      window.onload = function() {
        // 阻止双击放大
        document.addEventListener('touchstart', function(event) {
            if (event.touches.length > 1) {
                event.preventDefault();
            }
        });
        var lastTouchEnd = 0;
        document.addEventListener('touchend', function(event) {
            var now = (new Date()).getTime();
            if (now - lastTouchEnd <= 300) {
                event.preventDefault();
            }
            lastTouchEnd = now;
        }, false);
        // 阻止双指放大
        document.addEventListener('gesturestart', function(event) {
            event.preventDefault();
        });
      }

javascript 设置值-web后端开发过程中踩过的坑以及一些技巧和方法(持续更新)

这个缩放有问题。 如果滚动页面时使用两指缩放,可以放大。解决办法是给最里面的div设置一个样式(这里我以vue开发单页为例),这个#app在index中设置即可它在 .html 中

#app {
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch; /* 加这个是为了滚动流畅 */
}

10、最新的Vue脚手架工具(3.x以上)下,使用2.x脚手架使用的构建目录

安装了最新的 vue 脚手架后,使用以下命令安装附加工具:

npm install -g @vue/cli-init

然后可以使用以下命令生成旧项目目录:

vue init webpack 项目名称 十一、Vue CLi 3.0脚手架工具 关闭ESlint检测

在vue.config.js中添加一句:

module.exports = {
  baseUrl: process.env.NODE_ENV === 'production'
    ? '/henjievue/'
    : '/',
  lintOnSave: false //加这句话可以关闭ESlint
}

12. JS循环上有异步请求。 如何保证异步请求按顺序执行

这个不能用循环解决,应该用递归实现,或者用Promise.all,这里只提供递归的解决方案。

(function loop(index){
  axios.get("http://192.168.12.101:3000/news/list"+"?pageNum="+page[index]).then((response)=>{
    console.log(response);
    if(++index {
    console.log(error);
  })
})(0)

十三。 通过vue路由上的路由守卫的beforeRouteEnter的钩子函数很难获取到vue实例(this)

在这个钩子函数中,不能直接使用this来获取vue实例javascript 设置值,或者报未定义的错误。 解决方法如下:

const Foo = {
  template: `...`,
  beforeRouteEnter (to, from, next) {
    // 在渲染该组件的对应路由被 confirm 前调用
    // 不!能!获取组件实例 `this`
    // 因为当钩子执行前,组件实例还没被创建
  },
  beforeRouteUpdate (to, from, next) {
    // 在当前路由改变,但是该组件被复用时调用
    // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
    // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
    // 可以访问组件实例 `this`
  },
  beforeRouteLeave (to, from, next) {
    // 导航离开该组件的对应路由时调用
    // 可以访问组件实例 `this`
  }
}
//以上为解释。以下为解决方法
beforeRouteEnter(to, from, next){ 
    next((vm)=>{
        console.log(vm);
        if(from.path == '/'){
            vm.isShowAppr = false;
        }
    });
},

14、Chrome浏览器下,img标签没有图片时会显示边框?

解决办法如下,只需添加一段css代码即可:

img[src=""], img:not([src]){
    opacity: 0;
}

十五、v-if绑定链表变量,改变变量的值并不使v-if起作用

问题:当 v-if 绑定到链表变量时,更改变量的值不会使 v-if 起作用。 这会导致一个问题。 由于 JavaScript 限制,Vue 无法检查以下更改列表:

javascript 设置值-web后端开发过程中踩过的坑以及一些技巧和方法(持续更新)

1.当你直接借助索引设置一个项目时

2.当改变链表的粗细时

原因:网上总结:

Vue测量数据的改变是通过Object.defineProperty实现的,所以字段的加法操作无法被窃听也是可以理解的,因为构造函数中已经对所有属性做了测量绑定操作。

Vue 通过为每个键设置 getter/setter 来实现响应能力。 开发人员使用链表来实现遍历的目的。 这个时候调用getter的开销太大了,所以Vue并没有在field中设置每个key,而是在链表上定义ob,而原来field的原型技术只能通过替换push来影响等等。 从vue源码中可以清楚地看出,Vue跳过了为链表的每个key设置响应类型的过程,而是直接递归地为value设置响应类型。

解决:
第一类问题:
Vue.set(vm.items, indexOfItem, newValue)
vm.items.splice(indexOfItem, 1, newValue)
vm.$set(vm.items, indexOfItem, newValue)
eg: this.$set(this.isShowOKimg, index, true);
第二类问题:
vm.items.splice(newLength)

v-if 绑定字段变量,更改变量的值不会使 v-if 起作用

16.表单中onchange风暴的触发条件

input输入框的onchange事件只能在input失去焦点时触发; 输入框内容发生变化时不会触发变化,只有鼠标点击其他地方时才能触发; onchange 事件也可用于单选按钮 更改复选框后触发的风暴。

所有主流浏览器都支持onchange事件;

onchange 属性可与: 、 和

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 javascript javascript 设置值-web后端开发过程中踩过的坑以及一些技巧和方法(持续更新) https://www.wkzy.net/game/176654.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务