Jquery 在 Office 选择输入中追加

标签 jquery html office-js office-fabric

我有一个带有 Office UI Fabric 类的 HTML Select :

<div class="ms-Dropdown" tabindex="0">
   <label class="ms-Label">Modèles</label>
   <i class="ms-Dropdown-caretDown ms-Icon ms-Icon--ChevronDown"></i>
   <select id="modelsSelectbox" name="modelsSelectbox" class="ms-Dropdown-select">
        <option>Loading...</option>
   </select>
</div>

它工作得很好,但是当我尝试以添加新选项的方式实现此 Jquery 代码时,它不起作用:

$('#modelsSelectbox')
   .append($("<option></option>")
   .attr("value",1)
   .text("d"));

如果我删除 Office 的类(基本的 html 选择输入),就可以了!所以我认为问题来自办公室,但我不知道为什么。

有人知道吗?

最佳答案

我不是 Office Fabric 方面的专家,但根据我的理解,你不能简单地使用 jQuery 来修改 Fabric 组件。如果您检查元素,您可以看到 Fabric 动态生成其他 DOM 元素。我认为没有一种简单的方法来附加动态选项。一种方法可能是重新初始化下拉组件:

function initDropDown() {
   var $dropdown = $(".ms-Dropdown");
   $dropdown.find("select").innerHTML = "<option></option>";
   $dropdown.find(".ms-Dropdown-title").remove();
   $dropdown.find(".ms-Dropdown-items").remove();
   var $dropDownSelect = $(".ms-Dropdown-select");
   //your dynamic options
   $('<option value="0">option 1</option>').appendTo($dropDownSelect);
   $('<option value="1">option 2</option>').appendTo($dropDownSelect);
   $('<option value="2">option 3</option>').appendTo($dropDownSelect);
   //initialise component
   var DropdownHTMLElements = document.querySelectorAll('.ms-Dropdown');
   for (var i = 0; i < DropdownHTMLElements.length; ++i) {
       var Dropdown = new fabric['Dropdown'](DropdownHTMLElements[i]);
   }
}

如果您不需要动态选项,则只需初始化组件即可:

function init() {
  var DropdownHTMLElements = document.querySelectorAll('.ms-Dropdown');
  for (var i = 0; i < DropdownHTMLElements.length; ++i) {
    var Dropdown = new fabric['Dropdown'](DropdownHTMLElements[i]);
  }
}

关于Jquery 在 Office 选择输入中追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51946849/

相关文章:

javascript - 停在特定的 div 上,直到它滚动到末尾。 (CSS/JS)

typescript - 在哪里可以找到稳定的 Office.js TypeScript 定义?

javascript - 获取选定范围是否存在? Excel Office JS API

javascript - 如何连接2个字符串并使它们成为数组?

html - 从远程服务器拉取 icanhaz 模板

HTML 链接无法点击

javascript - 是否可以使用Office 2013 Office api插入base64 Word文件

javascript - 调用我的 textille 动画时出现问题

javascript - 焦点 ContentEditable div

javascript - 检查元素以调查 jQuery 事件绑定(bind)