本文为转载,原文地址:https://www.choupangxia.com/2020/04/19/js-vue-onclick/  ,非常感谢原作者

正常情况下,我们使用@click属性便可对HTML元素绑定onclick事件,完整示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Vue属性绑定</title><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head><body><div id="app2"><button type="button" @click="test">点击测试</button></div><script type="text/javascript">var app = new Vue({el: '#app2',data: {message: '页面加载于 ' + new Date().toLocaleString()},methods:{test:function () {alert("测试一下");}}})</script></body>
</html>

在button元素上通过@click绑定了vue中定义的test方法,当点击该button时,便会弹出提示框“测试一下”。

此时,如果button相关的组件的内容是动态生成的,也就是说是临时拼接的,此时再使用@click指定事件是无效的。示例如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Vue属性绑定</title><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head><body><div id="app2">
<!--        <button type="button" @click="test">点击测试</button>--></div><script type="text/javascript">var app = new Vue({el: '#app2',data: {message: '页面加载于 ' + new Date().toLocaleString()},methods:{test:function () {alert("测试一下");}}})function getButton() {var html = '<button type="button" @click="test">点击测试</button>';document.getElementById("app2").innerHTML = html;}getButton();</script></body>
</html>

这里,虽然button按钮也能够正常显示,但是无法绑定onclick事件。查看生成的页面元素显示如下:

<div id="app2">
<button type="button" @click="test">点击测试</button>
</div>

很显然并没有正常解析。那么,直接写onclick事件是否能够实现呢?

function getButton() {var html = '<button type="button" onclick="test">点击测试</button>';document.getElementById("app2").innerHTML = html;
}

将getButton中拼接的@click替换为onclick,但是执行时会提示“ReferenceError: test is not defined”。

那么再进一步改造,如下:

function getButton() {var html = '<button type="button" onclick="app.test()">点击测试</button>';document.getElementById("app2").innerHTML = html;
}

在上述代码中,事件绑定通过onclick进行绑定,而事件内容则通过定义的vue的变量app.test()方法来进行指定。注意此处test是方法,后面有括号。

经过上述的改造,便可以支持拼接字符串的形式来动态绑定vue中定义的方法。

JS中拼接VUE的ONCLICK事件相关推荐

  1. js中的click和onclick事件区别

    1.onclick是绑定事件,告诉浏览器在鼠标点击时候要做什么 2.click本身是方法,作用是触发onclick事件,只要执行了元素的click()方法,就会触发onclick事件

  2. form表单的action提交写到js中来,同时onclick事件也写在js中来。其action也可以通过ajax来提交的。...

    假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情 ...

  3. js中拼接字符串遇到的单引号、双引号以及转义字符问题

    项目中经常遇到对ajax提交后返回的结果动态显示在页面上,这时候就需要在js中进行字符串的拼接.额...其实普通的拼接字符串并没多大难度系数,只要保证单引号和双引号相间就可以了.但是,如果在拼接字符串 ...

  4. 关于js中无法绑定点击事件

    在js文件中添加点击事件失败,但是HTML中onclick就能成功. 解决办法:将js的引用的script标签放到</body>的后面.这样在页面渲染之后再执行js代码.

  5. js中调用vue中的方法

    1.在vue的钩子函数中将需要调用的函数赋值给window. mounted() {//将Vue方法传到全局对象window中window.updateSocket = this.onSubmit; ...

  6. 在php中焦点事件,Js中的onblur和onfocus事件(图文教程)

    html页面中,诸如按钮.文本框等可视元素都具有拥有和失去焦点的事件,这些事件在响应鼠标或键盘动作时都可激发预设的操作.本文以文本框获得和失去焦点为例简单讲解onfocus和onblur的应用. 一. ...

  7. Js中的onblur和onfocus事件

    html页面中,诸如按钮.文本框等可视元素都具有拥有和失去焦点的事件,这些事件在响应鼠标或键盘动作时都可激发预设的操作.本文以文本框获得和失去焦点为例简单讲解onfocus和onblur的应用. 一. ...

  8. 使用Docker部署Node.js中的Vue项目

    1.准备工作 使用服务器:阿里云 服务器系统:CentOS 7 项目配置 准备好一个项目 该项目下有以下文件 对 package.json 文件进行修改 设置项目启动的端口号和使用的ip 注:在修改p ...

  9. js中unload什么意思_javascript事件之卸载(unload)事件

    之前我们介绍过:javascript 卸载前beforeunload事件 ,今天为大家介绍下卸载(unload)事件. 在javascript中,与load事件对应的是unload事件,这个事件在文档 ...

  10. js中拼接字符串莫名出现NAN

    今天在写一个电影上拉菜单加载更多数据时,遇到一个bug,网络怎么也连不通,debugger后发现网址在拼接的时候变成了NAN类型数据 出错情况: 解决方法: 如果使用+号来进行字符串拼接时,尽量不要在 ...

最新文章

  1. 硬盘为何会丢失数据?
  2. Wifitap是一个WiFi注入工具集常用命令集合大学霸IT达人
  3. xgboost算法 c语言,xgboost与sklearn的接口
  4. 第二轮冲刺-Runner站立会议03
  5. 微信小程序 没有找到 node_modules 目录
  6. pythonwx功能_python中wx模块的具体使用方法
  7. 电脑主板跳线_DIY电脑主板的跳线安装及排序规则
  8. 【Kernel学习】基础篇——01一些标准宏定义和文件include关系
  9. poj 2378 树型dp
  10. [转载] numpy.base_repr 方法解释
  11. mysql druid读写分离_springboot+mysql+jpa+sharding-jdbc+druid读写分离
  12. MapGuide应用程序演示样例——你好,MapGuide!
  13. Android总结笔记04:仿QQ空间登录UI,解决软键盘弹出挡住输入框的问题
  14. Android开源项目第一篇——个性化控件(View)篇
  15. 人脸对齐—级联回归模型和深度学习模型
  16. 1 k 1 k2c语言,一张图告诉你斐讯路由器K1S、K2,K2C的区别
  17. pycharm中设置鼠标滚动放大和缩小页面
  18. 【华人学者风采】徐泽水 四川大学
  19. i9 13900ks和13900k区别 i913900ks和i913900k对比
  20. 金融级IT架构:网商银行是如何进行数字化落地的

热门文章

  1. Java中try与catch的使用
  2. 30岁前成功的12条黄金法则
  3. jquery ajax 对异步队列defer与XMLHttprequest.onload的依赖
  4. 【php更换数据库为orcle】phpstudy+orcle
  5. 东北三省计算机专业好的学校,东北地区哪个大学比较好 各自的王牌专业是什么...
  6. Security+ 学习笔记36 嵌入式系统安全
  7. 八、K8s 密码管理
  8. KVM详解(五)——KVM虚拟机镜像格式
  9. Linux之Firewall防火墙、iptables、firewalld
  10. HDOJ--1596--find the safest road