首页 > 解决方案 > onClick 事件未在 Firefox 中触发

问题描述

我有这个 Web 组件,其中有一个选择字段。单击选择字段时,它会打开一个自定义下拉列表,其中包含您可以从中选择的元素。出于某种原因,当我在 Firefox 中单击该元素时,我需要单击它两次,因为第一次单击不会触发事件(Chrome 中的一切都按预期工作)。任何想法如何解决这个问题?

这是代码:

  const renderSelect = (field: FormField) => {
    if((!field.updateable && editMode) || field.disabled) {
      return (
        <div class="prefilled-text">
          {field.value}
        </div>
      )
    } else {
      return (
        <div class="dropdown">
          <select
            id="dropdownclick"
            name={field.key}
            onClick={() => {
              field.open = true;
              forceUpdate(ref);
            }}
            class={{
              placeholder: field.value === '',
              selected: !!field.value,
              hidden: field.hidden,
            }}
          >
            {/* placeholder */}
            <option value="" selected disabled hidden>
              {field.value || field.placeholder}
            </option>
          </select>
          {/* option */}
          {
            field.open ?
            <div class="search-dropdown">
              <ul>
                {field.options.map((option) => (
                  <li onClick={() => {

                    selectDropdownOption(option, field);
                    field.open = false;
                    forceUpdate(ref);

                  }}>{option}</li>
                ))}
              </ul>
            </div>
            : null
          }
        </div>

      )
    }
  }

标签: javascriptonclickweb-componentstenciljs

解决方案


推荐阅读