为什么克隆 DIV 中的 SELECT 在刷新时会出现错误行为?

2023-12-07

我正在使用 jQuery Mobile 的 .clone() 函数来克隆表单中的 div,这样我就可以拥有可重复的部分,但现在我遇到了嵌套选择的问题。
一旦 div 被克隆并且嵌套选择被新的 id 更新,下一次“刷新”后就会发生一些奇怪的事情。

发生的事情很奇怪,选择只是加倍并将其自身放置在现有选择中,所以结果是这样的:

Strange behavior with JQM and cloned selects

浏览器是 Safari,我没有用其他浏览器进行任何测试,因为我只需要这段代码在 Safari 上运行。

我克隆 div 的方法是:

var div = $.mobile.activePage.find('.repeatable').last().clone();

克隆,然后更新 ID:

var newValue = pid +'-' + index;
$(this).attr('id', newValue);
$("label[for='"+ old +"']").attr('for', newValue);

最后,我刷新所有选择,以便在调用 .val() 后选择正确的值:

if ($(this).data('role') === 'select') {
    $(this).selectmenu();
    $(this).selectmenu('refresh');
}

当调用代码的最后一部分时,就会出现问题。在选择正确显示但无法正常工作之前,刷新选择后,它开始以正确的方式工作,但 UI 很混乱,因为已被加倍并放置为原始元素的子元素。

我通过以下方式在克隆按钮之前添加 div:

$('#clone_button').before(div);

这个问题的根源是什么?

Edit:看起来这可能是 jQuery Mobile 的一个错误:example.


我终于找到了解决这个问题的方法。 目前,jQuery mobile 不支持可扩展项目的克隆。

执行此操作的唯一方法是手动编辑和修复克隆的 div,删除选择周围的样式项并将它们隔离。

我们要做的事情很简单,但很棘手:

  • 导航所有具有类的 DIVui-select
  • 推断嵌套SELECT删除无用的标签
  • 追加HTML的代码SELECT之后或之前ui-select DIV
  • 去除ui-select DIV
  • 附加可重复的 DIV
  • Call trigger('create')在父级中重新生成正确的样式。

虽然很乱,但是很有效。

我已经更新了JSFiddle 中的示例。 (编辑:另一个好的解决方案来自阿施米茨 on JSFiddle)

附:如果您使用标签,则必须将它们保存在某个位置并将它们重新附加到正确的位置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么克隆 DIV 中的 SELECT 在刷新时会出现错误行为? 的相关文章

  • 防止垃圾邮件按钮呼叫功能

    如何防止调用函数时出现垃圾邮件按钮 就像用户只能在按钮上每 1 秒调用一次该函数 有办法做到吗 因为我尝试了 setTimeout 但没有成功 它仍然在发送垃圾邮件 顺便说一句 我使用 Jquery 这是我的代码
  • 覆盖 jQuery 验证 MVC4 中的默认设置

    要覆盖查询验证插件 请在文件 http docs jquery com Plugins Validation validate toptions 推荐的方式是 selector validate invalidHandler functio
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • Flot 库将 y 轴设置为最小值 0 和最大值 24

    如何将 y 轴设置在 0 到 24 的范围内 这是我的代码 j plot j placeholder d1 xaxis mode time min new Date 2010 11 01 getTime max new Date 2011
  • 基于用户输入的 jquery 表行选择器

    如何根据输入框中的内容选择行 这是我到目前为止所拥有的
  • jQuery 生成 div 和碰撞检测

    所以我的学校作业项目快要结束了 我只是错过了两件我似乎无法弄清楚的主要事情 1 如何生成具有随机位置的间隙的管道障碍物 以便鸟可以飞过 尝试使用一个函数来更改间隙位置的管道 div 的 css right attr 并在以下情况下移除管道它
  • 如何在单击事件时向数组添加值

    我想要实现的是读取单击事件的值并将其保存到数组中 我的代码 a href class hotel Add to favourites a var hotelName hotel on click function e e preventDe
  • 如何在数据表中colspan rowspan?

    I am trying to use colspan and rowspan attributes with jQuery Datatables where a product sku can span 2 rows and a week
  • jQuery:离线后 POST 出错(iOS 和 Chrome)

    我构建了一个具有离线功能的 HTML5 Web 应用程序 使用 AppCache 程序流程为 Online 在网络上时 应用程序预加载一些基本信息 工作 Offline 用户拿着装有应用程序的平板电脑offline 然后在应用程序上执行他们
  • 当焦点/单击[重复]时选择 contenteditable div 中的所有文本

    这个问题在这里已经有答案了 我有 contenteditable div 如下 div style border solid 1px D31444 12 some text div 我需要的是 当我点击 div 时 所有文本都会自动被选中
  • 获取 FileReader() 的结果对象

    有什么方法可以在不通过函数的情况下获取 FileReader 的结果对象 我在下面制作了示例代码 HTML br br br div div JS var code lorem ipsum input type file change fu
  • 使用 jquery 远程图像属性

    目前我正在尝试获取远程图像宽度 高度 我正在开发一个链接共享模块 就像当你在 Facebook 上粘贴链接时 你可以看到标题 描述和图像 所以我尝试使用 php getimagesize 来获取图像宽度 高度 但速度非常慢 所以我正在考虑使
  • Ajax 表单从 Jquery 对话框内重定向页面

    我在部分视图中有一个 jquery 对话框 model JQueryDialogPoc Models FeedBack using Ajax BeginForm GiveFeedback Home null new AjaxOptions
  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • Jquery 数据表列总和

    我只是参考一下这个链接 https datatables net examples advanced init footer callback html了解如何获取 jquery 数据表中的列总计 但我已经完成了一半的项目 我在html页面
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz

随机推荐

  • 使用动态 SQL 与参数调用 sp_executesql 的性能差异

    Given CREATE PROCEDURE dbo my storedproc param1 int param2 varchar 100 AS lt
  • 如何批量测试STDIN是否为终端?

    在 shell 中我可以这样做 if test t 0 then echo stdin is a tty exit 0 fi 我怎样才能批量执行此操作 编辑 感谢所有测试人员 echo off timeout 1 2 gt nul gt n
  • Websocket 史诗,接收连接和消息请求并发出消息和连接状态更新

    我希望创建一个可观察到的 redux 史诗 它可以与我的应用程序的其余部分分开 它需要 监听传入的动作 type SOCKET TRY CONNECT 这也可能会在连接时忽略任何其他 SOCKET TRY CONNECT 事件 另外侦听要发
  • 将不均匀列表转换为 data.frame [重复]

    这个问题在这里已经有答案了 在简单的情况下 将偶数列表转换为数据帧可以通过以下方式完成as data frame 例如 gt x1 lt list a 1 3 b 4 6 c 7 9 gt as data frame x1 a b c 1
  • copy-item 其中文件名是计算机主机名

    Powershell 中似乎存在一个基本问题 我正在做一个从 UNC 共享到本地的简单复制项目脚本C 驾驶 这是我的代码 hostname env computername Copy Item Path server share hostn
  • .NET Core 2 + 系统.Data.OracleClient。汉字不行

    我正在使用 NET Core 2 和几周前发布的 System Data OracleClient 包 https www nuget org packages System Data OracleClient 我能读懂数字 日期和普通的英
  • KeyListener 如何检测组合键(例如 ALT + 1 + 1)

    我怎样才能让我的定制KeyListener聆听以下组合ALT or CTRL就此而言 不止一把其他钥匙 假设我希望应用程序执行 11 种不同的操作 具体取决于按下的按键组合 ALT 0 ALT 9显然不会造成任何问题 而对于ALT 1 0
  • AngularJS:$watch 选择输入

    我知道我们可以使用 ng change 来解决这个问题 但我想了解为什么 watch 在 select 上不起作用 也许我做错了什么 但似乎我不是唯一一个为此苦苦挣扎的人 这是我的代码 HTML div class list div
  • 强制浏览器清除缓存

    有没有办法在我的页面上放置一些代码 以便当有人访问网站时 它会清除浏览器缓存 以便他们可以查看更改 使用的语言 ASP NET VB NET 当然还有 HTML CSS 和 jQuery 如果这是关于 css and js更改 那么一种方法
  • 如何使用java解码使用openssl aes-128-cbc编码的字符串?

    我在用着openssl编码一个string使用以下命令 openssl enc aes 128 cbc a salt pass pass mypassword lt lt lt stackoverflow 结果给我一个编码字符串 U2Fsd
  • 我可以从 C# 在远程应用程序域中注入线程吗

    我想知道是否可以将线程注入到在单独进程中运行的远程应用程序域中 我的猜测是我可以使用调试接口 ICorDebug 来做到这一点 但我想知道是否还有其他方法 最近宣布 Mono 提供了一项新功能来实现这一点 请参阅此帖子装配注入
  • 调试 VHDL Modelsim 中的迭代限制错误

    我正在 Modelsim 上为 d 触发器编写 VHDL 代码 当我尝试模拟它时出现错误 错误 vsim 3601 在 400 ps 时达到迭代限制 我不确定这意味着什么 但我已经检查了大部分源代码以查找错误 但没有成功 谁能猜出问题可能是
  • 使用反应式扩展创建多个计时器

    我有一个非常简单的类 我用它来轮询目录中的新文件 它有位置 开始监视该位置的时间以及再次检查的时间间隔 以小时为单位 public class Thing public string Name get set public Uri Uri
  • 使用 Spring Security 检查额外参数

    请在Spring Security中给出提示 如何在用户登录期间检查附加参数 例如 不仅要检查 用户名 和 密码 还要检查他是否通过电子邮件链接确认注册 所有数据都存储在数据库中 我可以通过 UserDetailsS ervice 的实现轻
  • 什么CSS元素控制引导滚动间谍活动/悬停?

    http examine com v5x creatine html summary 将鼠标悬停在摘要上 控制它的 CSS 是什么 我好像找不到啊 Active active类 对于大多数 Bootstrap 功能来说都是如此 Hover
  • 为什么我无法用C#向本地数据库(SQL精简版)插入数据?

    我正在 Visual Studio 上做一个项目 我正在使用本地数据库 空的sql server精简版 我选择了数据集并创建了我的表 图像 它有一个主要的自动增量 id 列和一个 nvarchar ImagePath 列 我想在其中插入数据
  • 在 django 中选择不同的单独列?

    我很好奇是否有任何方法可以在 Django 中执行不是 的查询 SELECT FROM 在下面 我正在尝试做一个 SELECT DISTINCT columnName FROM 反而 具体来说 我有一个如下所示的模型 class Produ
  • 同时调用 primefaces 中的多个 bean 方法

    我正在使用 primefaces 4 0 构建一个 Web 应用程序 我想在单击命令按钮时同时调用两个 bean 方法 我尝试使用远程命令
  • 多父树(或有向图)实现sql server 2005

    我需要在 SQL Server 2005 上实现多父树 或有向图 我读过几篇文章 但大多数都使用具有独特根的单亲树 如下所示 My PC Drive C Documents and Settings Program Files Adobe
  • 为什么克隆 DIV 中的 SELECT 在刷新时会出现错误行为?

    我正在使用 jQuery Mobile 的 clone 函数来克隆表单中的 div 这样我就可以拥有可重复的部分 但现在我遇到了嵌套选择的问题 一旦 div 被克隆并且嵌套选择被新的 id 更新 下一次 刷新 后就会发生一些奇怪的事情 发生