以上示例在点击链接时,会报错:Uncaught TypeError: Cannot read property 'setState' of undefined。因为this指向的并不是该组件。所以为了能方便调用当前组件的其他属性或方法,需要将this指向为当前实例
前言 编程时我们往往拿到的是业务流程正确的业务说明文档或规范,但实际开发中却布满荆棘和例外情况,而这些例外中包含业务用例的例外,也包含技术上的例外。对于业务用例的例外我们别无它法,必须要求实施人员与用户共同提供合理的解决方案;而技术上的例外,则必须由我们码农们手刃之,而这也是我想记录的内容。 我打算分成《前端魔法堂——异常不仅仅是try/catch》和《前端魔法堂——调用栈,异常实例中的宝藏》两篇分别叙述内置/自定义异常类,捕获运行时异常/语法异常/网络请求异常/PromiseRejection事件,
对于 JS 而言,我们面对的仅仅只是异常,异常的出现不会直接导致 JS 引擎崩溃,最多只会使当前执行的任务终止。
前端一直是距离用户最近的一层,随着产品的日益完善,我们会更加注重用户体验,而前端异常却如鲠在喉,甚是烦人。
先贴一段代码 <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <a href="http://www.baidu.
当时首先想到要做长按事件的时候,我想到的是vue内部的自定义指令,毕竟官网里边有这么一句描述:
w3c的方法是e.stopPropagation(),IE则是使用e.cancelBubble = true
2. 第2部分write.js 第二部分决定先介绍write部分,因为controller部分必须要结合write部分才能看到效果。 针对write.js部分,前面有介绍,是用来实现通过鼠标(手指)写字的核心部分。 分析一下要做的事情。
import { ref, } from 'vue' import { useBool } from './useBool' export interface AnyFunction { (...args: any): any } // 数据获取标识 const DATA_SIGN = 'DRAG' export function getDragDataSign() { return DATA_SIGN } /** * DOM 绑定拖拽事件 * @returns { { elems,
JavaScript冒泡和捕获是事件的两种行为,使用event.stopPropagation()起到阻止捕获和冒泡阶段中当前事件的进一步传播。使用event.preventDefault()可以取消默认事件。
今天凑巧碰到一件怪事: 1.问题描述: 根据用户输入的内容按回车键作查询时,在IE下一直会触发一个Button按钮;IE下只有Button才会有这个问题,如果是a标签就不会有这样的问题? 2.解决思路
nw.js如何处理拖放操作 其实拖放(drag-drop)操作是Html5的功能,不是nw.js的内置API,那么我们采用Html5应用一般的处理方法就可以了。 首先我们看一下一个正常的页面,直接拖放一个文件过来的效果。 页面代码: <html> <head> <title>拖放测试</title> </head> <bodystyle="background-color:rgba(0,0,0,0);"> <pid="output"> 拖放测试
利用canvas切出小块图片 我们知道现在的拼图游戏都是由九张小图片依次排列组成的,就是类似九宫格那样。那么以前的做法就是我们利用Photoshop这样的工具把原始大图【尺寸一般都是正方形的哦】切成九张小块的正方形小图,但是这种做法有点不灵活,如果我们要更换图片的话,就得重新去切图,好麻烦。。。 不过没关系,现在我们有了canvas!利用canvas我们可以很轻松的做到这些。核心代码如下: var image = new Image(); image.onload = function() {
//移动端 $(".demo").on("touchstart", function(e) { e.preventDefault(); startX = e.originalEvent.changedTouches[0].pageX, startY = e.originalEvent.changedTouches[0].pageY; }); $(".demo").on("touchmove", function(e) { e.preventDefault();
此代码实现方法简洁,而且不会丢失(用JavaScript添加一行人工填入的Input值)input值。仅依赖JQuery,不依赖其它扩展。
当元素的值发生改变时,会触发change事件。该事件仅适用于<input>, <select>和<textarea> 元素。当用于<select>元素时,change 事件会在选择某个选项时发生。当用于<input>或<textarea>时,该事件会在元素失去焦点时发生。
前言 关于讲解 JS 的拖拽功能的文章数不胜数,我确实没有必要大费周章再写一篇重复的文章来吸引眼球。本文的重点是讲解如何在某些特定的元素上禁止拖拽。这是我在编写插件时遇到的问题,其实很多插件的拖拽功能并没有处理这些细节,经过翻阅 jquery ui 的源码才找到答案。 拖拽实现 关于拖拽功能不再啰嗦,直接贴代码 /** * [draggable 拖拽方法] * @param {[type]} modal [移动元素] * @param {[type]} handle [拖拽元素] */ var
在升级到 ios11.3 系统后,阻止页面滚动的代码 e.preventDefault 代码失效了。
以前在博文中提到过,在 webview 中使用 jQuery 等框架,很影响网页加载速度,所以我都是使用纯 Javascript 来写页面脚本。在开发 webview 程序过程中,经常用到了一些东西,总结一下:
//得到事件 function getEvent(){ if(window.event) {return window.event;} func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0){ if((arg0.constructor==Event || arg0.constructor ==MouseEvent
起因:正常情况下我点击s2时是先弹出我是children,再弹出我是father,但是却出现了先弹出我是father,后弹出我是children的情况,这种情况是在和安卓app交互的h5页面中出现的,本地测试没有问题,但是在安卓打包的内嵌h5页面就出现了问题。简单化的代码先展示出来。 html代码如下 s1 s2 事件绑定如下 $('#fathe
微信浏览器返回键按下跳转路由 window popstate, Vue全中 写入 mixins文件 引入 main.js 全局引入 import popstate from './components/newComponent/popstate' Vue.mixin(popstate) 使用 使用时 this.init(‘router’) 此处router为 留有name属性值 router 为空时 执行 history.go(-1) mixin export default { data
为了方便用户的查看浏览器在移动默认设置用户可以放大或者缩小, 但是随着前端届的日新月异的变化,反而随意放大缩小成了我们需要解决的问题; 安卓手机解决方案: <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no"/> // 以下为注释 //在移动浏览器上页面渲染是在一个叫viewport的页面绘制区域内。 <meta
Author:Mr.柳上原 付出不亚于任何的努力 愿我们所有的努力,都不会被生活辜负 不忘初心,方得始终 想要进入前端圈子里工作 原来需要懂得太多太多 刚开始学习前端 好高骛远 以为html+css很牛逼了 然后学了js以为自己已经是前端了 到处投简历 说自己精通原生js 不会任何框架 现在想来 还是太年轻 学了node+mongodb+pug+layui 学了vue 却发现要成为一个真正的前端工程师,这些远远不够 还需要git 还需要less,sass 还需要小程序 还需要Bootstrap 还需要Rea
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
实现全屏爆炸:这段代码很简单,当按下调试键的时候,全屏都是乱码,所有标签里都会填充为乱码,轻则直接可以让浏览器崩溃,经测试有些系统则可能会蓝屏!(慎用)
很多同学对阻止事件冒泡和阻止事件默认行为容易混淆,项目中因为一些原因也需要阻止浏览器的一些默认行为,这里就简单总结一下。
我们会看到这样的情况:span alert -> td alert -> table alert。这就叫事件冒泡。就是从下到上,从里到外,事件依次触发。 有的时候我们不希望事件冒泡咋办?
拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放
//弹出框禁止滑动 Vue.prototype.noScroll = function () { var mo = function (e) { e.preventDefault() } document.body.style.overflow = 'hidden' document.addEventListener('touchmove', mo, false)// 禁止页面滑动 }
当监听到表单的提交事件后,可以调用事件对象的 event.preventDefault()函数,来阻止表单的提交和页面的跳转,示例代码如下:
大家肯定不陌生了,做移动端开发的,肯定都碰到过,比如 我明明滚动的是弹窗,但是底下的 document 却在滚动
这是《大胖小课》栏目的专题一《说说文件上传那些事儿》的第5节-《实现文件拖拽和剪贴板上传》
亲,像下面这种有关移动互联网迅猛发展的报告,最近见得很多吧?在座各位作为互联网行业的弄潮儿,看完是不是很有历史使命感和紧迫感呢?简直热血喷张、跃跃欲试,甚至有一种“不移动不成活”的冲动吧?!
老规矩先说需求:上传文件需要拖拽上传 正常来讲一个UI库就支持了 比如antd的uploads组件 但是考虑到设计图的差异太大了,所以需要自己来实现 也是很简单的: 直接上代码吧 这个代码中包括了上传s3的步骤 如果不需要可以去掉 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>原生拖拽上传</title> <style> #container { bord
window.onload = function () { document.getElementsByTagName("body")[0].onkeydown = function (event) { if (event.keyCode == 8) { var elem = event.target || event.srcElement || event.currentTarget; var name = elem.nodeNa
轻量服务器( Lighthouse)是腾讯云新一代开箱即用、面向轻量应用场景的云服务器产品,目的是为了助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、APP、电商应用、云盘/图床和各类开发测试环境。相比普通云服务器更加简单易用且更贴近应用,以套餐的形式整体售卖基础云资源,同时提供了高带宽流量包,将热门开源软件融合打包实现一键构建应用,提供极简上云体验。今天,我们就基于腾讯云的轻量服务器搭建一个属于自己的3D照片画廊。
1.禁止鼠标右键菜单 contextmenu主要控制应该何时显示上下文菜单,主要用于程序员取消默认的上下文菜单
02javascript中间preventDefault与stopPropagation角色介绍我们知道,例如,百度,这是html最基本的东西,的作用是点击链接百度上http://www.baidu.com,这是属于标签的默认行为。02剪贴板——客户端存储WEB应用程序可以通过处理这些事件,与其他WEB应用程序以及客户端本地应用程序进行数据交换。04跨浏览器常用事件obj.attachEvent('on' + type, function () {02如何先执行input (checkbox,radio)再执行函数遇到一个问题,当input type="checkbox"点击时,没有立即执行勾选或去勾,而是先执行函数,如下代码02HTML5 拖拽上传图片实例因为标题写的是实例,所以本次就不做讲解了,因为这个实例我也算是东拼西凑整出来的,参考了大概5、6款拖拽上传的插件和demo,然后把其中好的地方挑出来,最后就成了这么一个实例,一起来看下吧(地址不能保证长久有效,如果失效请在文章最后点击demo下载):http://hoorayos.caifutang.com/dropupload.html03IOS、iPhone移动端,表单input聚焦时页面放大的解决办法最近的一个项目中,发现几个页面在使用 iPhone 11 访问的时候,点击 input 和 textarea 等文本输入框聚焦 focus() 时,页面会整体放大。02秒懂 javascript 拖拽上传文件代码 直接贴代码了,复制到本地 .html 文件中即可实现以上演示效果: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>drag file</title> <style type="text/css"> * { margin: 0; padding: 0; } .container { width: 60%; max-width: 600px; height: 320px; pa07第53天:鼠标事件、event事件对象-->鼠标事件 -->event事件对象 -->默认事件 -->键盘事件(keyCode) -->拖拽效果02
我们知道,例如,百度,这是html最基本的东西,的作用是点击链接百度上http://www.baidu.com,这是属于标签的默认行为。
WEB应用程序可以通过处理这些事件,与其他WEB应用程序以及客户端本地应用程序进行数据交换。
obj.attachEvent('on' + type, function () {
遇到一个问题,当input type="checkbox"点击时,没有立即执行勾选或去勾,而是先执行函数,如下代码
因为标题写的是实例,所以本次就不做讲解了,因为这个实例我也算是东拼西凑整出来的,参考了大概5、6款拖拽上传的插件和demo,然后把其中好的地方挑出来,最后就成了这么一个实例,一起来看下吧(地址不能保证长久有效,如果失效请在文章最后点击demo下载):http://hoorayos.caifutang.com/dropupload.html
最近的一个项目中,发现几个页面在使用 iPhone 11 访问的时候,点击 input 和 textarea 等文本输入框聚焦 focus() 时,页面会整体放大。
代码 直接贴代码了,复制到本地 .html 文件中即可实现以上演示效果: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>drag file</title> <style type="text/css"> * { margin: 0; padding: 0; } .container { width: 60%; max-width: 600px; height: 320px; pa
-->鼠标事件 -->event事件对象 -->默认事件 -->键盘事件(keyCode) -->拖拽效果
领取专属 10元无门槛券
手把手带您无忧上云