jQuery多变量不在同一页面上工作

时间:2012-09-20 06:49:00

标签: jquery

我在我的代码中使用jQuery $ var,但我有一些外部js文件,它们使用$jx作为jQuery Var。现在我的代码不起作用,我得到$不是函数。我删除了所有外部js文件然后它正在工作。我搜索了解决方案。许多人说“你可以使用你自己的var作为jQuery / $,而不是使用类似var $jx = jQuery.noConflict();。但是当我在我的页面中调用此行时,我的$ var被删除并显示”$ is not a a功能“错误。我做了一个简单的代码来解释这个问题

请阅读并测试我的以下代码。

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript">
//var $=jQuery.noConflict();
var $jx = jQuery.noConflict(); // this $jx var will be used in another plugins or codes

function test()
{
$("#test").hide();
}
</script>

</head>

<body>
<input type="button" value="Click Me to hide box" onclick="test()" />
<div id="test" style="border:1px solid #0033FF; background:#999900; height:100px; width:200px; color:#FFFFFF; font-size:20px;">I will be hidden</div>
</body>

运行上面的代码,点击按钮,什么都不会发生。将发生错误。 现在只需删除此行var $jx = jQuery.noConflict();即可。我没有在这里使用$ jx,而是为其他外部脚本使用它。那么如何在同一页面中同时使用$和$jx? 我的错是什么?。

我的工作已在项目中间停止。

请帮帮我

4 个答案:

答案 0 :(得分:3)

Rewrite it like this

<script type="text/javascript">

$.noConflict();


function test()
{
  jQuery("#test").hide();
}
</script>

这意味着您需要使用$而不是jquery代码$,而不是<script type="text/javascript"> var jx = $.noConflict(); function test() { jx("#test").hide(); } </script>

OR

$

现在,这意味着您需要使用j而不是$代码{{1}},而不是{{1}}。

答案 1 :(得分:0)

您可以使用:

var $jx = jQuery.noConflict();
$jx(document).ready(function($){

function test()
{
    $("#test").hide();
 }
});

因为你已经将$重新定义为jQuery的句柄

答案 2 :(得分:0)

尝试使用var jx = jQuery.noConflict();代替var $jx = jQuery.noConflict();

以后jx("#test").hide();代替$("#test").hide();

另见文档:http://api.jquery.com/jQuery.noConflict/

答案 3 :(得分:0)

我用

var jquery = $;
jquery("#test").hide();