首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么后续的dom读取会检测到dom的更新?

为什么后续的dom读取会检测到dom的更新?
EN

Stack Overflow用户
提问于 2022-08-25 16:47:15
回答 1查看 21关注 0票数 0

我正在编写一个小型Vue应用程序。我有一个元素,它有一个数据范围属性,如下所示:

代码语言:javascript
运行
复制
:data-range="form.appearence.height_min + '/7'"

form.appearence.height_min将根据用户选择的select元素值进行更改。

每次选择更改后,我将再次读取数据范围,并在此基础上进行操作。

代码语言:javascript
运行
复制
// from the vue app, a watcher
'form.appearence.xps':function(val, oldval){
  // this will properly change the model and the dom as well
  this.$set(this.form.appearence, 'height_min', xps_map[val]);
  this.$emit('xps-updated');
}


// then from another script
this.options.vue.$on('xps-updated', function(){
  this.options.vue.$nextTick(function(){
    console.log($('#test5').data('range')) // issue: this value doesn't change
  }.bind(this))
}.bind(this));

我的问题是范围值在dom上确实会改变,我可以从控制台看到它,但是javascript总是读取初始值.例如,开始时是3/7,然后改为5/7,但是$('#test5').data('range')仍然会读3/7。为什么?

EN

回答 1

Stack Overflow用户

发布于 2022-08-25 19:37:32

好的,我自己回答。我发现jquery对象不遵循Vue的dom更新,至少在本例中是这样的。因此,即使dom被Vue更新,$('#test5').data('range')也总是给出初始值。

相反,通过使用香草js获取“真实”元素,如

代码语言:javascript
运行
复制
let range = document.querySelector('#test5').dataset.range;

将始终返回更新的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73491094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档