VUE DOM加载后执行自定义事件的方法


Posted in Javascript onSeptember 07, 2018

最近想用vue做一个小东西,谁知道一开始就遇到了一个棘手的问题:

首先我想在页面加载前通过ajax请求页面展示所需要的信息,于是我在created钩子函数里面请求了我想要的数据

created:function(){
   var url="/indexitem";
   var _self=this;
   $.get(url,function(data){
   _self.items=data;
   });
   $.get('/banner',function(data){
   _self.banners=data;
   });
  }

这一步很顺利,接下来就是要将数据绑定到对应的元素中,我在这里需要将请求得到的图片地址绑定到轮播图对应的元素中,

我这里采用的是mui框架中提供的图片轮播(移动端,支持手势滑动),问题恰恰就这里:

<div id="slider" class="mui-slider" @click="greet()">
  <div class="mui-slider-group mui-slider-loop">
   <div class="mui-slider-item mui-slider-item-duplicate"><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" :style="{backgroundImage: 'url(' + banners[banners.length-1].src+ ')',backgroundSize:'cover'}"></a></div>
   <div class="mui-slider-item" v-for="cc in banners"><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" :style="{backgroundImage: 'url(' + cc.src+ ')',backgroundSize:'cover'}"></a></div>
   <div class="mui-slider-item mui-slider-item-duplicate"><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" :style="{backgroundImage:'url('+banners[0].src+')',backgroundSize:'cover'}"></a></div>
  </div>
  <div class="mui-slider-indicator">
   <div class="mui-indicator mui-active"></div>
   <div class="mui-indicator"></div>
   <div class="mui-indicator"></div>
   <div class="mui-indicator"></div>
  </div>
  </div>

我绑定完数据之后,发现轮播图失效了,因为我之前用原生js写的时候遇到过同样的问题,我当时的解决办法是等页面加载完成后重新进行滑动初始化,但是今天用vue我蒙了,试了很多生命周期函数也无法确保在页面加载完成后进行初始化。

vue.js更多的希望是通过数据绑定来代替直接通过dom操作,而vue并没有提供渲染完成的钩子。

所以我今天的解决办法是:setTimeout()

在实例化VUE对象后添加下面代码:

setTimeout(function(){
  console.log($('#slider').length);
  var gallery = mui('.mui-slider');
  gallery.slider({
   interval: 3000//自动轮播周期,若为0则不自动播放,默认为0;
  });
  },1000);

以上这篇VUE DOM加载后执行自定义事件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
从父页面读取和操作iframe中内容方法
Jul 25 Javascript
js获取class的所有元素
Mar 28 Javascript
js二级地域选择的实现方法
Jun 17 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
JavaScript改变CSS样式的方法汇总
May 07 Javascript
javascript解决小数的加减乘除精度丢失的方案
May 31 Javascript
js生成随机数(指定范围)的实例代码
Jul 10 Javascript
基于JavaScript实现轮播图原理及示例
Apr 10 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
Apr 26 Javascript
JS实现的JSON序列化操作简单示例
Jul 02 Javascript
Vue管理系统前端之组件拆分封装详解
Aug 23 Javascript
Vue 修改网站图标的方法
Dec 31 Vue.js
详解JavaScript事件循环机制
Sep 07 #Javascript
解决vue 引入子组件报错的问题
Sep 06 #Javascript
解决vue v-for 遍历循环时key值报错的问题
Sep 06 #Javascript
vue 解决循环引用组件报错的问题
Sep 06 #Javascript
vue slots 组件的组合/分发实例
Sep 06 #Javascript
React注册倒计时功能的实现
Sep 06 #Javascript
node.js 模块和其下载资源的镜像设置的方法
Sep 06 #Javascript
You might like
php empty函数 使用说明
2009/08/10 PHP
php 正则匹配函数体
2009/08/25 PHP
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
javascript 打印内容方法小结
2009/11/04 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
Python_LDA实现方法详解
2017/10/25 Python
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
什么是GWT的Entry Point
2013/08/16 面试题
农村党支部先进事迹
2014/01/14 职场文书
高中地理教学反思
2014/01/29 职场文书
运动会入场词200字
2014/02/15 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
MySQL查询日期时间
2022/05/15 MySQL