1

我有一个有趣的问题。我clone()在谷歌浏览器扩展中使用 jQuery 函数。该函数正在克隆表格行。问题是 TR 中有一些内联的 javascript/jquery 使用$j()而不是jQuery().

每次我尝试输出克隆的行时,我都会收到错误“$j 未定义”。

所以我想到了 2 种可能的解决方案来解决这个问题:

  1. 使我的 chrome 扩展程序与$j()(尝试使用 jquery 没有冲突)而不是jQuery()

或者

  1. 在输出之前在克隆的项目中进行搜索,替换$jjQuery.

我的问题是我都无法完成...

 var rows = jQuery("#field-mapping-template").clone(true);
 rows.insertBefore("#field-mapping-template");
4

1 回答 1

5

我的意思是,我真的不建议这样做,但如果你真的需要,你可以这样做。

进入 jQuery 的开发版本并一直向下滚动到底部,直到看到这行代码:

// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;

现在只需将其更改为:

// Expose jQuery to the global object
window.jQuery = window.$j = jQuery;

现在,当您编写如下脚本时:

<input type="hidden" name="name" value="test" />
<script type="text/javascript">
    $j(function () {
        alert($j('input').val());
    });
</script>

而不是$,它将适用于$j

这与替换不同jQuery()。是的$简写jQuery()

我真的,真的,真的不建议用jQuery()$j 或任何东西代替。

截至最新版本 (v1.7.2),开发代码中有879个对jQuery对象的引用,您必须将其更改为$j.

如果你有一个好的查找和替换,你可以这样做,但我不建议这样做

于 2012-06-20T20:53:15.000 回答