jQuery $ .fn.whatever不再使用实时服务器

时间:2014-02-12 17:40:03

标签: jquery jquery-plugins

我讨厌在没有代码的情况下发布问题,但如果我知道要发布什么,我就会知道问题。

我的所有jquery插件函数都已停止在实时服务器上运行。

它们仍在本地工作,所有外部JavaScript文件都应该相同。

我收到了所有这些消息$(...).whatever is not a function。我不确定我改变了什么导致了这个...文件被检测到,我没有做任何影响范围。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于这是一个相当烦人的问题,其他人无疑会在以后面对这个问题,这里有更多关于这个问题的原因和解决方案的细节。

问题:我正在加载包含<script></script>的内容,这些内容通过加载与之冲突的javascript(真正的jQuery)来破坏我的母版页。它使我的自定义插件变得毫无用处。

解决方案:简单地渲染script块对于加载AJAX的内容无用。这是怎么回事。

如何从加载AJAX的内容中删除<script>块:

我尝试了几种不同的方法,但最终证明这种方法最可靠:

$.ajax(url,{
  success: function(data){
    data = data.replace(/<script(?:.*)>/gi,'<!--[Script Removed]>>>');
    data = data.replace(/<\/script>/gi,'<<<[Script Removed]-->');
    $('.faux-container').html(data);
 }
});

它将<script>块转换为无害的HTML注释,并解决了我的问题。