ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vue中data数据,使用v-model属性绑定第三方插件(例如Jquery的日期插件)无法自动更新

2021-09-09 10:02:16  阅读:108  来源: 互联网

标签:Jquery 触发 插件 绑定 事件 自动更新 test input


问题原因就是html结合Vue使用,但是项目又使用了第三方日期控件,这会导致日期值选择形式的更新后,而Vue管理的对应v-model字段并未自动更新,这是因为日期控件未触发Input事件,需要我们在值更新后手动触发Input事件。

 

这里需要一个注意点,就是不要使用Jquery的trigger方法进行触发事件,因为Vue的v-model的input事件绑定的形式是通过原生绑定的;而我认为 Jquery.trigger(eventName) 只能触发由Jquery通过jquery.on函数进行绑定的事件。

let test = document.querySelector("#test")

// Jquery 绑定事件
$(test).on("input",()=>console.log("Jquery Event 01"))

// Js 绑定事件
test.addEventListener("input",()=>console.log("Js Event 02"))


// Jquery 触发事件
$(test).trigger("input") // 这里应该只打印了 ”Jquery Event 01“ 信息,而JS原生绑定的事件并未触发

// JS 触发事件
test.dispatchEvent(new Error("input")) // 这里应该先后触发了Jquery和JS的Input事件

由此示例可以说明,如果需要触发原生绑定的事件,需要使用dispatchEvent进行触发

 

总结就是,如果想让Vue响应Input事件的v-model字段的更新,需要触发原生的事件即可。。。

 

 

 

 

 

 

 

附上Vue集成第三方日期控件不自动更新值的解决方法:

第三方日期Jquery控件:http://www.malot.fr/bootstrap-datetimepicker

解决方案:

  1.在bootstrap-datetimepicker.js文件里定位到 _setDate 方法

 

 

 

this.element.get(0).dispatchEvent(new Event("input"))

 

 


 

 

   

标签:Jquery,触发,插件,绑定,事件,自动更新,test,input
来源: https://www.cnblogs.com/XingXiaoMeng/p/15245645.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有