【发布时间】:2016-08-12 11:00:02
【问题描述】:
我目前在同一页面上运行几个 jQuery 脚本,这个特定页面上有一个产品过滤器(使用 ajax)。 http://www.ctagroup.com.au/cta-group-home/products/selector/
我正在使用的一个脚本是这样的:
var $s = jQuery.noConflict();
$s('body').each(function () {
$s(this).html($s(this).html().replace(/(\®)/g, '<sup>®</sup>'));
});
因此,每个 ® 都会在站点范围内相应地使用。 单击过滤器选项后,它会在不运行我的脚本的情况下返回。
如何在每次使用 ajax 过滤器时再次运行此脚本?
【问题讨论】:
-
放到一个函数中,从ajax过滤代码中调用...
-
请注意,由于文档只有一个正文
$s('body').each(function () { $s(this).html($s(this).html().replace(/(\®)/g, '<sup>®</sup>')); });与$s('body').html($s('body').html().replace(/(\®)/g, '<sup>®</sup>'));相同,因此有效地替换整个正文内容 - 这样做可能会非常昂贵并且会破坏事情。 -
仅供参考,在您的当前页面上,您在
var $s = jQuery.noConflict(); $s('body').each(function () { $s(this).html($s(this).html().replace(/(\®)/g, '<sup>®</sup>')); });中收到无效的正则表达式标志(语法错误)看起来此代码可能位于您页面上的多个位置,并且全局无冲突$s可能是重复 -
在页面上也将上述内容与重复的 sup 进行比较:
var $s = jQuery.noConflict(); $s('body').each(function () { $s(this).html($s(this).html().replace(/(\<sup>®</sup>)/g, '<sup><sup>®</sup></sup>')); });发生这种情况是因为您的全局替换,它会替换自身并爆炸 - 因此我在选择器。 -
有一个双 的原因仅仅是因为我在整个网站的一些文本块周围都有 ,因为这是在我想出这个功能之前。其他没有 的 ® 现在都有一个。我用你的代码替换了我的代码,它所做的只是 div 类 .sf-result 中的 target ®。我认为你误解了我真正需要的东西。现在网站上的每个 ® 都有一个带有我的代码的 。使用过滤器时,您可以在产品描述中看到它恢复正常。 @马克
标签: javascript jquery ajax function filtering