用jQuery模拟“ select2”下拉列表上的点击不起作用

时间:2019-11-18 13:23:06

标签: javascript jquery jquery-select2

我尝试在SELECT2(https://select2.github.io/select2/)下拉菜单上模拟jQuery的点击,但是click事件不起作用...

我尝试过的事情

setTimeout(function() {
  let rightElement = $('ul.select2-results__options li:nth-child(2)');
  if (rightElement.length) {
    rightElement.click();
  }
}, 3000)

该元素存在,但不会触发单击。我将这个下拉菜单与Wordpress的官方“ WP Job Manager”一起使用,以过滤具有类别的作业,我尝试在页面加载时预先选择一个类别。

您知道为什么点击事件不触发吗?

2 个答案:

答案 0 :(得分:0)

您是否尝试过triggering事件?

rightElement.trigger('click')

这是完成相同任务的普通JavaScript函数。

triggerEvent(document.'ul.select2-results__options li:nth-child(2)', 'click');

function triggerEvent(el, eventName) {
  let event = document.createEvent('HTMLEvents');
  event.initEvent(eventName, true, false);
  el.dispatchEvent(event);
}

答案 1 :(得分:0)

您的问题是if条件。 html元素的length属性将始终为undefined。这就是为什么您的事件没有被触发的原因。这样做:-

setTimeout(function() {
  let rightElement = $('ul.select2-results__options li:nth-child(2)');
  if (rightElement) {
    rightElement.click();
  }
}, 3000)