Skip to content

Commit 76cfd7c

Browse files
committed
Clicking a selected tag toggles dropdown
1 parent a0c8efe commit 76cfd7c

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/components/Select.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -847,7 +847,8 @@
847847
* @return {void}
848848
*/
849849
toggleDropdown(e) {
850-
if (e.target === this.$refs.openIndicator || e.target === this.$refs.search || e.target === this.$refs.toggle || e.target === this.$el) {
850+
if (e.target === this.$refs.openIndicator || e.target === this.$refs.search || e.target === this.$refs.toggle ||
851+
e.target.classList.contains('selected-tag') || e.target === this.$el) {
851852
if (this.open) {
852853
this.$refs.search.blur() // dropdown will close on blur
853854
} else {

test/unit/specs/Select.spec.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,26 @@ describe('Select.vue', () => {
433433
})
434434
})
435435

436+
it('should open the dropdown when the selected tag is clicked', (done) => {
437+
const vm = new Vue({
438+
template: '<div><v-select :options="options" :value="value"></v-select></div>',
439+
components: {vSelect},
440+
data: {
441+
value: [{label: 'one'}],
442+
options: [{label: 'one'}]
443+
}
444+
}).$mount()
445+
446+
const selectedTag = vm.$children[0].$el.getElementsByClassName('selected-tag')[0]
447+
vm.$children[0].toggleDropdown({target: selectedTag})
448+
Vue.nextTick(() => {
449+
Vue.nextTick(() => {
450+
expect(vm.$children[0].open).toEqual(true)
451+
done()
452+
})
453+
})
454+
})
455+
436456
it('can close the dropdown when the el is clicked', (done) => {
437457
const vm = new Vue({
438458
template: '<div><v-select></v-select></div>',

0 commit comments

Comments
 (0)