由于项目的临时需要,把某一页很复杂的jquery写的页面嵌入了vue项目的里面,假设这一页jquery写的页面叫做jquery.vue,现在发现了一个问题:
从一个vue单页面文件 drag.vue通过路由跳转到jquery.vue的时候,点击jquery.vue页面的某个按钮,但是却无法触发它的点击事件,要刷新本页后点击才可以触发这个按钮的点击事件,这是为什么?
补充: jquery.vue页面的点击事件是这种类型:
$('#button').click(function(){})
由于项目的临时需要,把某一页很复杂的jquery写的页面嵌入了vue项目的里面,假设这一页jquery写的页面叫做jquery.vue,现在发现了一个问题:
从一个vue单页面文件 drag.vue通过路由跳转到jquery.vue的时候,点击jquery.vue页面的某个按钮,但是却无法触发它的点击事件,要刷新本页后点击才可以触发这个按钮的点击事件,这是为什么?
补充: jquery.vue页面的点击事件是这种类型:
$('#button').click(function(){})
jquery产生效果的时间是document.ready之后,和vue的ready生命周期钩子时间差不多,所以建议把jQuery中的代码放到mounted中。这样保证可以找到节点,当然了,既然用了Vue, 为什么不直接把代码再稍微重构下呢,使用@click不是更舒服
不贴完整代码无法确认问题所在,初步猜想应该是button是动态创建的,试试下面的写法
$('body').on('click', '#button', function() {
// some codes
});
9 回答1.7k 阅读✓ 已解决
6 回答1.6k 阅读
3 回答1.4k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
3 回答1.1k 阅读
2 回答1.2k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
因为找不到节点,所以事件没有绑上;建议把事件绑在mounted周期内;或者method方法里