首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用jQuery在"select2“下拉列表上模拟单击不起作用

用jQuery在"select2“下拉列表上模拟单击不起作用
EN

Stack Overflow用户
提问于 2019-11-18 13:23:06
回答 2查看 381关注 0票数 1

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

我试过什么

代码语言:javascript
复制
setTimeout(function() {
  let rightElement = $('ul.select2-results__options li:nth-child(2)');
  if (rightElement.length) {
    rightElement.click();
  }
}, 3000)

元素存在,但单击不触发。我使用这个下拉与官方的"WP职务管理器“为Wordpress过滤作业与类别,我试图预选一个类别在页面加载。

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

EN

回答 2

Stack Overflow用户

发布于 2019-11-18 13:30:23

你试过触发这个活动了吗?

代码语言:javascript
复制
rightElement.trigger('click')

下面是一个简单的JavaScript函数,它完成了相同的任务。

代码语言: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);
}
票数 0
EN

Stack Overflow用户

发布于 2019-11-18 13:35:50

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

代码语言:javascript
复制
setTimeout(function() {
  let rightElement = $('ul.select2-results__options li:nth-child(2)');
  if (rightElement) {
    rightElement.click();
  }
}, 3000)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58915596

复制
相关文章

相似问题

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