javascript - 使 .selectedIndex 与 JQuery Mobile 框架中的选择框一起使用时出现问题

标签 javascript jquery html jquery-mobile

我有一系列选择的保管箱设置,其内容根据前面的选择动态更新。串联选择效果很好。

当我尝试返回顶部并重新开始时,即使我已尝试使用重置所有子项

my_select.selectedIndex = 0;

子选择框保持不变。我原以为这是一个 Javascript 错误,但发现 JSFiddle 示例实际上有效,但我在 JQuery mobile 中的代码不起作用 - 让我相信这是一个 JQuery Mobile 相关问题

您可以在 http://jsfiddle.net/vinomarky/xfcdF/ 查看 JSFiddle 示例。

复制步骤:

  1. 从类型中选择“外壳”
  2. 从 OD 中选择 5
  3. 将类型更改为管道

JSFiddle 示例的行为应有 - 将子级重置为“-”,而我的“实时”JQuery Mobile 示例则不然

有什么想法可以解释为什么吗?

最佳答案

您在 jQuery Mobile 背后操作 DOM,但从未告诉 jQuery Mobile 发生了任何变化。

您需要调用 refresh method更改基础 <select> 后:

refresh update the custom select

This is used to update the custom select to reflect the native select element's value.If the number of options in the select are different than the number of items in the custom menu, it'll rebuild the custom menu.

所以你需要添加这样的东西:

$('#od').selectmenu('refresh');

位于更改处理程序的底部。当然,要刷新的元素取决于您所在的更改处理程序。

演示:http://jsfiddle.net/ambiguous/n3VXe/

你的 fiddle 工作得很好,因为它根本没有使用 jQuery Mobile。

此外,您不应该使用 onchange在 2012 年,您正在加载 jQuery,因此您应该使用它来将处理程序绑定(bind)到您感兴趣的事件。您可能还想用 jQuery 替换所有直接 DOM 操作。

关于javascript - 使 .selectedIndex 与 JQuery Mobile 框架中的选择框一起使用时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9747163/

相关文章:

javascript - 如何使用 href 连接两个参数?

javascript - Angular 9在单个元素滚动上添加类

javascript - 将具有值的子对象添加到现有的 javaScript 对象

javascript - ChartJS 无法在 jquery .load() 加载的 .php 中工作(AJAX)

javascript - 页眉/页脚导航更新 jquery

javascript - 我想做一个在 id 上不断添加 5 的按钮。如何?

jquery - 平滑变换菜单下划线

javascript - ionic 弹跳似乎不起作用

JavaScript/jquery 获取元素上方的同级元素

javascript - JS : Sort a multi-dimensional array based on each sub-array's length