Vue.js: 在另一个点击事件中分配点击动作
Vue.js: Assigning a click action inside another click event
我试图在单击 "Edit" 按钮时进入编辑模式。该模式应该创建一个保存按钮、一个删除按钮,也许还有更多。
我正在使用 jQuery 创建按钮,我正在尝试为它们分配事件,但是当我分配它时事件处理程序被触发。
我读过一些关于事件传播的问题,但我似乎无法弄清楚如何解决它。
它不仅被触发,当我尝试点击新按钮时,事件也没有被触发。
这是我的问题的一个孤立示例:
https://codepen.io/anon/pen/ooxQXR
我尝试了几种中断传播的方法,但似乎没有任何效果。
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
关于如何解决这个问题有什么想法吗?
在这种情况下我会忘记 jQuery - 在大多数情况下使用 Vue。为什么不在模板中使用简单的 if/else 块,例如 this.
<div id="app">
<button v-if="!editMode" class="first" @click.stop="clickEvent">First</button>
<template v-else>
<button class="save">Save</button>
<button class="delete">Delete</button>
</template>
</div>
new Vue({
el: '#app',
data() {
return {
editMode: false
}
},
methods: {
clickEvent(e) {
this.editMode = true;
}
},
})
向 save/delete 按钮添加其他事件处理程序应该不是问题。
我试图在单击 "Edit" 按钮时进入编辑模式。该模式应该创建一个保存按钮、一个删除按钮,也许还有更多。
我正在使用 jQuery 创建按钮,我正在尝试为它们分配事件,但是当我分配它时事件处理程序被触发。 我读过一些关于事件传播的问题,但我似乎无法弄清楚如何解决它。
它不仅被触发,当我尝试点击新按钮时,事件也没有被触发。
这是我的问题的一个孤立示例: https://codepen.io/anon/pen/ooxQXR
我尝试了几种中断传播的方法,但似乎没有任何效果。
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
关于如何解决这个问题有什么想法吗?
在这种情况下我会忘记 jQuery - 在大多数情况下使用 Vue。为什么不在模板中使用简单的 if/else 块,例如 this.
<div id="app">
<button v-if="!editMode" class="first" @click.stop="clickEvent">First</button>
<template v-else>
<button class="save">Save</button>
<button class="delete">Delete</button>
</template>
</div>
new Vue({
el: '#app',
data() {
return {
editMode: false
}
},
methods: {
clickEvent(e) {
this.editMode = true;
}
},
})
向 save/delete 按钮添加其他事件处理程序应该不是问题。