Jquery 条件适用于除 safari 之外的所有浏览器

2024-05-27

在 iPhone 和 iPad 上的 Safari 中,我为条件语句设置的选择器不起作用,并且会导致每个 ajax 请求出现重复的内容。它在 android、chrome、firefox、ie 和桌面版 safari 上运行良好。

$('li.micropost').each(function() {
  var nlform, nlid;
  nlid = $(this).data('url');
  if ($("li#post" + nlid + " div.nl-field").length === 0) {
    nlform = new NLForm(document.getElementById("post" + nlid));
  }
});

这是 HTML

<li id="post<%= feed_item.id %>" class="micropost" data-url="<%= feed_item.id %>">...</li>

当 nlform 变量存在时,它将以下 div 添加到其各自的列表项

<div class="nl-field">...</div>

如果没有设置 nlform 变量,这就是 html 内部的样子<li> tag

<%= form_for((@micropost), :html => { :id => "nl-form", :class => "nl-form" }, :url => microposts_path, :authenticity_token => true) do |f| %>
    <!-- div will be added here if nlform variable is set -->
    <input type="text" value="" placeholder="type here" id="micropost_content1" name="micropost[content1]">
    <button id="btn<%= feed_item.id %>" class="nl-submit" type="submit" name="commit">Post</button>
<% end %>

我的 Safari 选择器无法识别我的 #nl-field 类不等于 0,因此它创建了一个重复的表单变量,导致每个 ajax 请求产生重复的 nl-field div。

我还尝试在 data-url 属性的开头添加一个字母,但这也没有帮助。

这是添加动态内容的 javascripthttps://github.com/codrops/NaturalLanguageForm/blob/master/js/nlform.js https://github.com/codrops/NaturalLanguageForm/blob/master/js/nlform.js

Update因为我在电脑上,所以调试起来非常困难。如果有人可以帮助在移动 safari 上调试这个问题,我可以链接到该应用程序的现场演示,我将非常感激。 我尝试添加$('li.micropost').attr('class', 'micropos');到循环结束,这样当我在 li.micropost 上循环时,它就不会重新访问 .micropos 类,但不知何故 safari 仍然循环每个列表项并重复内容。

我还尝试迭代每个列表项并删除重复的 div

var seen = {};
$("li#post" + nlid + " .nl-field").each(function() {
   var txt = $(this).text();
   if (seen[txt])
      $(this).remove();
   else
      seen[txt] = true;
});

这个 hack 几乎是通过将创建的重复项数量限制为 2 来实现的。

  • 我还尝试通过 Jquery 层次结构删除重复的 div,如下所示

    $("li#post" + nlid + " .prompt + div").remove()

  • 以及仅迭代新添加的列表项,这些列表项全部填充在 ID 为“infscr-loading”的 div 之后,如下所示

    $( "#infscr-loading ~ li" )

  • 我尝试根据 nl-field div 的存在附加一个新元素,并给它一个 id,然后我根据它运行我的条件,但这也不起作用。

所有这些方法在 Chrome 上都能很好地工作,以防止重复。我不知道我做错了什么,让 Safari 表现得像这样。仅供参考,每次将新对象添加到页面时,我都会运行此代码作为 jquery 无限滚动的回调。它是用 javacript 编写的,但对于我的应用程序,我将其转换为 Coffeescript。 这是咖啡脚本的样子

$( "#infscr-loading ~ li" ).each ->
        nlid = $(this).data('url')
        nlform = new NLForm(document.getElementById "post" + nlid ) if $("li#post" + nlid + " .nl-field").length is 0
return

这是用于创建动态 nl-field div 的 javascript 要点https://gist.github.com/anonymous/8cc2f09b2045f8f0d6c8 https://gist.github.com/anonymous/8cc2f09b2045f8f0d6c8


在对实时应用程序进行了 50 多次提交后,我终于找到了罪魁祸首。在我的 javascript 文件中创建了我拥有的动态元素

Array.prototype.slice.call( this.el.querySelectorAll( 'input#micropost_content1' ) ).forEach( function( el, i ) {
  self.fldOpen++;
  self.fields.push( new NLField( self, el, 'input', self.fldOpen ) );
} );

我必须改变'input#micropost_content1'使用类而不是 id,一切都开始按预期工作。

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

Jquery 条件适用于除 safari 之外的所有浏览器 的相关文章

  • 使用 dc.js 按条形值对条形图中的条形进行排序(排序)

    如何通过维度的计算值而不是维度本身的名称对 dc js 示例中的 x 轴 维度 进行排序 例如 请考虑序数条形图的 dc js 示例 https github com dc js dc js blob master web examples
  • 使用 Passenger + Apache 相对于 Webrick 的优势

    我想说服我的管理层 使用 Apache 乘客设置是继续生产的方法 而不是使用 webrick 或 mongrel 我从网上找到了一些观点 如果您能添加您的想法 那将非常有帮助 因为这将有力地帮助我表达我的观点 欢迎提供技术细节 如果您有任何
  • Rails - 用于集合集的单选按钮

    我有以下输出选择框 br 替代输出单选按钮的 Rails 方法是什么 对于单选按钮 您必须自行迭代并输出每个单选按钮及其标签 事实上这真的很容易
  • 有没有办法使用 Rspec/Capybara/Selenium 将 javascript console.errors 打印到终端?

    当我运行 rspec 时 是否可以让 capybara selenium 向 rspec 报告任何 javascript console errors 和其他异常 我有一大堆测试失败 但当我手动测试它时 我的应用程序正在运行 如果不知道仅在
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • Javascript split 不是一个函数

    嘿朋友们 我正在使用 javascript sdk 通过 jQuery facebook 多朋友选择器在用户朋友墙上发布信息 但是我收到此错误friendId split 不是函数 这是我的代码 function recommendToFr
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • 如何以 Rails 形式将图像从 上传到具有 Rails Active Storage 的 S3?

    正如标题中所述 我正在尝试使用 Rails 的 Active Storage 从嵌套在 Rails 表单中的元素将图像上传到我的 S3 存储桶 到目前为止我已经能够使用使用 Active Storage 上传图像 这User class h
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 将 Rack::Deflater 插入机架中的哪个位置?

    我目前有以下内容 use Rack Rewrite use Rack Cache verbose gt true metastore gt memcached localhost 11211 rack cache meta entityst
  • 代码镜像错误:未捕获错误:扩展集中无法识别扩展值([对象对象])

    全部 我目前正在从事一个React Electron项目 该项目的目标是完成一个Markdown编辑器 当我配置codemirror 该程序报告错误说 Uncaught Error Unrecognized extension value
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 如何隐藏/禁用 Highcharts.js 中的图例框?

    我想问是否可以使用 HighCharts js 库隐藏图表中的所有图例框 var chart object chart renderTo render to type graph type colors graph colors title
  • 带参数的事件监听器

    我想将参数传递给 JavaScript 中的事件侦听器 我已经找到了解决方案 但我无法理解它们为什么或如何工作以及为什么其他解决方案不起作用 我有 C C 背景 但是 Javascript 函数的执行有很大不同 您能否帮助我理解以下示例如何
  • Rails 3 SSL 路由从 https 重定向到 http

    这个问题与此相关SO 问答 rails 3 ssl deprecation https stackoverflow com questions 3634100 rails 3 ssl deprecation建议使用routes rb和类似的
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro
  • 如何使用asm.js进行测试和开发?

    最近我读到asm js规范 看起来很酷 但是是否有任何环境 工具来开发和测试这个工具 这还只是处于规范阶段吗 您可以尝试使用 emscripten 和 ASM JS 1 并从侧分支在 firefox 构建中运行它 有关 asm js 的链接

随机推荐

  • 对列表中的每个数值列表求和

    我想将值附加到 R 中河图中的标签 我有一个值列表列表 需要它来显示节点之间的流 如下所示 edges lt list A list C 10 E 5 B list C 10 C list D 13 E 7 我知道有一个函数可以减少 或求和
  • jQuery Datepicker showAnim 没有动画

    我尝试了多种方法并在互联网上搜索 试图让动画发挥作用 但一无所获 我有日期选择器工作和日期格式选项 但没有动画 我希望使用 剪辑 选项 以下是各个文件中的内容 应用程序 js require jquery require jquery tu
  • Java ArrayList 的 (ArrayList).toString 的相反是什么?

    我正在使用toString的方法ArrayList储藏ArrayList数据到字符串中 我的问题是 我该如何走另一条路 是否有现有的方法可以解析中的数据String实例返回到ArrayList 最简洁的答案是不 没有简单的方法可以从字符串中
  • “composer”在 Windows 服务器中未被识别为内部或外部命令

    我使用的是Windows Server 2008操作系统 我下载作曲家安装程序 exe https getcomposer org download 并安装到我的电脑上 当我尝试时composer install 我收到错误 compose
  • Spring security:在 3.1 中,仅针对“GET”请求绕过安全过滤器

    我希望我的服务仅对传入的 POST PUT DELETE 请求执行身份验证 并绕过任何 GET 请求 Spring 版本低于 3 1 具有 filters none 属性 可用于绕过特定 URL 模式的所有安全过滤器 在 3 1 中 fil
  • 有没有办法限制 React-Native 中 TextInput 的长度?

    我一直在尝试使我的程序不允许您在 TextInput 组件中输入超过一定数量的字符 类似于 maxLength 对于输入的工作方式 我还没有找到任何类似的 textInput 的 maxLength 有没有一种简单的方法来设置 组件的最大字
  • PowerShell 输出在函数之间交叉

    我正在 Windows 10 上的 5 1 版本中编写一个 PowerShell 脚本 该脚本获取有关本地系统 以及最终其子网 的某些信息并将其输出到文本文件中 起初 我将所有方面都集中在一个函数中 我在输出时遇到了输出问题getUsers
  • 更改 .cpp、.h 文件的 Visual Studio 默认路径

    我希望 Visual Studio 自动将我的 h 文件放入文件夹 ProjectPath include 中 并将我的 src 文件放入 ProjectPath src 中 这样 如果我使用 创建类向导 它会默认放置好路径 而无需更改文件
  • 使用 py2neo 从 csv 文件创建 neo4j 图形数据库

    我目前正在攻读博士课程 并且对 Py2neo 很感兴趣 因此我使用它来使用社交图谱进行一些实验 然而我遇到了新手麻烦 抱歉问这些简单的问题 我得到了一个 xml 数据集 其中包含有关期刊出版物的数据 我已将其转换为 csv 表 大约有 70
  • CSS 中的重叠图像

    如何让 mymessage gif 显示在 bread wine jpg 之上 mymessage gif 具有透明背景
  • 如何配置 Angular2 Quickstart 来运行 phantomjs?

    我想弄清楚如何运行测试Angular2 快速入门 https github com angular quickstart与 phantomjs 我认为这些步骤足以配置 Karma 1 克隆存储库 git clone https github
  • 图像预加载不适用于 FireFox 中的图像

    我正在动态切换背景图像 当然 它们需要预加载才能及时显示 我正在预加载它们 我能够在图像加载时在 FireBug 中进行跟踪 当背景图像切换时 我看到图像在 FireBug 中再次下载 这是我的网址 http www morganpacka
  • 发送邮件时PEAR邮件验证失败

    由于我发现 PHP 中内置的邮件功能存在安全漏洞 因此我尝试使用 PEAR 我已经在本地主机 WAMP 服务器 2 2 上安装并进行了必要的配置 但是 每次我尝试发送电子邮件时 都会显示以下消息 error authentication f
  • 如何将 UIImage 和 UILabel 合并为一张图像并保存

    我有 2 个 UILabels 和 2 个图像 我需要将它们合并到一个 UIImage 中进行保存 我知道我可以用屏幕截图来做到这一点 但我的主图像是圆形的 所以如果我对其进行校正 它仍然会显示锐利的边缘 我可以这样做来组合图像 CGSiz
  • if let 不解开 MKAnnotation 的 title 属性的可选值

    我想用 if let 语句解开可选值 我需要获得 MKAnnotation 的标题 func mapView mapView MKMapView didSelect view MKAnnotationView if let title vi
  • 当 RecyclerView 适合屏幕时不要折叠工具栏

    我用它制作了一个应用程序Android设计库 带有工具栏和 TabLayout 实际上有 2 个选项卡 都带有 2 个 RecyclerView 滚动时会自动折叠工具栏 我的问题是 当 RecyclerView 项目很少且完全适合屏幕 如
  • 窗口服务中的全局处理异常

    我有一个 Windows 服务作为服务器运行 但是 服务器有时会因未处理的错误而立即停止 请帮助我如何处理全局异常 谢谢 在我看来 你似乎试图以错误的方式解决问题 当您的程序 或服务 由于未处理的错误而崩溃时 解决方案不是弄清楚在哪里以及如
  • 使用 python3 和请求登录 Twitter

    我正在开发一个项目 要求使用用户名和密码登录网站 我必须在 python 中执行此操作 然后才能访问只有登录人员才能访问的网站部分 我尝试了几种编码变体来执行此操作 但无法成功登录然而 这是我的编码 登录它的功能 def 会话2 url r
  • iOS WebView 空白

    我已使用 YouTube 的标准嵌入网址在我的 iOS 8 3 应用程序中嵌入了 YouTube 视频 sample http www youtube com embed HkAK9QRe4ds 它按预期工作 但看起来很奇怪 那个白色间隙
  • Jquery 条件适用于除 safari 之外的所有浏览器

    在 iPhone 和 iPad 上的 Safari 中 我为条件语句设置的选择器不起作用 并且会导致每个 ajax 请求出现重复的内容 它在 android chrome firefox ie 和桌面版 safari 上运行良好 li mi