Javascript 调用jquery-1.10.2.js时jquery-1.3.1.min.js不工作
我需要这两个js文件,一个用于添加行,另一个用于tablesort和pager。 我的问题是,如果两个脚本都被调用,那么它们都不起作用 这是我目前的代码:Javascript 调用jquery-1.10.2.js时jquery-1.3.1.min.js不工作,javascript,jquery,paging,Javascript,Jquery,Paging,我需要这两个js文件,一个用于添加行,另一个用于tablesort和pager。 我的问题是,如果两个脚本都被调用,那么它们都不起作用 这是我目前的代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="h
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us">
<head>
<title>jQuery plugin: Tablesorter 2.0</title>
<link rel="stylesheet" href="./css/style.css" type="text/css" />
<script type="text/javascript" src="./js/jquery-1.10.2.js"></script>
<script type="text/javascript" src="./js/jquery.tablesorter.js"></script>
<script type="text/javascript" src="./js/jquery.tablesorter.pager.js"></script>
<script >
$(document).ready(function()
{
$(document).on("click","#tdAdd",function(){
var newRow = $("<tr>");
var cols="";
cols+='<td><input type="button" id="tdAdd" value="+"/></td>';
cols+='<td><input type="button" class="tdDelete" value="-"/></td>';
cols+='<td><input type="text" value="enter data here"/></td>';
newRow.append(cols);
newRow.insertAfter($(this).closest("tr"));
});
});
</script>
</head>
<body>
<table id="insured_list" class="tablesorter">
<thead>
<tr>
<th>Last Name</th>
<th>First Name</th>
<th>Email</th>
<th>Age</th>
<th>Premium Amount</th>
</tr>
</thead>
<tbody>
<tr>
<td>Mendes</td>
<td>Domnic</td>
<td>domnic@gmail.com</td>
<td>29</td>
<td>5500</td>
</tr>
<tr>
<td>
<input type="button" id="tdAdd" value="+"/>
</td>
<td>
<input type="button" class="tdDelete" value="-"/>
</td>
<td>
<input type="text" name="name" value="anything"/>
</td>
</tr>
</tbody>
</table>
<div id="pager" class="pager">
<form>
<img src="images/first.png" class="first"/>
<img src="images/prev.png" class="prev"/>
<input type="text" class="pagedisplay"/>
<img src="images/next.png" class="next"/>
<img src="images/last.png" class="last"/>
<select class="pagesize">
<option value="">LIMIT</option>
<option value="2">2 per page</option>
<option value="5">5 per page</option>
<option value="10">10 per page</option>
</select>
</form>
</div>
<script defer="defer">
$(document).ready(function()
{
$("#insured_list")
.tablesorter({widthFixed: true, widgets: ['zebra']})
.tablesorterPager({container: $("#pager")});
}
);
</script>
</body>
</html>
jQuery插件:Tablesorter 2.0
$(文档).ready(函数()
{
$(文档)。在(“单击”,“添加”,函数()上){
var newRow=$(“”);
var cols=“”;
cols+='';
cols+='';
cols+='';
newRow.append(cols);
newRow.insertAfter($(this.closest(“tr”));
});
});
姓
名字
电子邮件
年龄
保险费金额
门德斯
多姆尼克
domnic@gmail.com
29
5500
极限
每页2张
每页5张
每页10张
$(文档).ready(函数()
{
$(“投保人名单”)
.tablesorter({widthFixed:true,小部件:['zebra']})
.tablesorterPager({container:$(“#pager”)});
}
);
如果我添加这个,对于我的延迟脚本。两个脚本都不起作用
<script type="text/javascript" src="./js/jquery-1.3.1.min.js"></script>
编辑:
<script type="text/javascript" src="./js/jquery-1.10.2.js"></script>
<script type="text/javascript">
var j1 = $.noConflict(true);
</script>
<script type="text/javascript" src="./js/jquery-1.3.1.min.js"></script>
<script type="text/javascript">
var j2 = $.noConflict(true);
</script>
<script type="text/javascript" src="./js/jquery.tablesorter.js"></script>
<script type="text/javascript" src="./js/jquery.tablesorter.pager.js"></script>
<script >
$(document).ready(function()
{
j2("#insured_list")
.tablesorter({widthFixed: true, widgets: ['zebra']})
.tablesorterPager({container: $("#pager")});
j1("#tdAdd").click(function(){
X();
});
});
function X(){
var newRow = $("<tr>");
var cols="";
cols+='<td><input type="button" id="tdAdd" value="+"/></td>';
cols+='<td><input type="button" class="tdDelete" value="-"/></td>';
cols+='<td><input type="text" value="enter data here"/></td>';
newRow.append(cols);
newRow.insertAfter($(this).closest("tr"));
}
变量j1=$.noConflict(真);
var j2=$.noConflict(真);
$(文档).ready(函数()
{
j2(“投保单”)
.tablesorter({widthFixed:true,小部件:['zebra']})
.tablesorterPager({container:$(“#pager”)});
j1(#tdAdd”)。单击(函数(){
X();
});
});
函数X(){
var newRow=$(“”);
var cols=“”;
cols+='';
cols+='';
cols+='';
newRow.append(cols);
newRow.insertAfter($(this.closest(“tr”));
}
这是我尝试的当前脚本,当我尝试运行它时,firebug说:
TypeError:$未定义
$扩展({
jquery….rter.js(第89行)//jquery.tablesorter.js
TypeError:$未定义$扩展(( jquery….ager.js(第2行)//jquery.tablesorter.pager.js TypeError:$不是一个函数
$(文档).ready(函数() html(第19行)//tablesorter(2.html
如果不使用如下语法为每个版本分配不同的符号,则无法加载两个版本的jQuery:
var myJQ = jQuery.noConflict();
在加载第二个变量之前加载第一个变量,然后仅使用myJQ
变量引用第一个变量(参见答案)
更好的办法是让两个插件都使用同一版本的jQuery,这样就可以只加载一个插件,而不必做额外的练习
如果您提到的“添加行内容”只是您在问题中使用的jQuery代码,那么1.10.2应该可以正常工作,因此您应该能够只使用该版本。我建议您放弃jQuery的1.3.1版本,只使用1.10.2版本。它应该满足您的两个需求
仅供参考,我在您的代码中出现了一个错误。您正在尝试添加重复的
id=“tdAdd”
标记,但您不应该这样做。如果您希望有多个这样的元素,请使用类,而不是id。使用like
在一个jQuery上使用jQuery.noConflict();
,并将$
替换为jQuery
试一试
jQuery.noConflict();
//现在将这个jQuery替换为$
我以前已经解决了这个问题,
是我的错,但是当我重新下载jquery-1.3.1.min.js
文件时,两个js文件都可以正常工作。因此,我建议
当您尝试使用插件并遇到相同问题时,请仔细检查源代码及其文件大小。需要在任何其他js脚本之前添加JQuery库。您现在看到的错误是因为您使用的是.noConflict()
删除符号$
,但插件仍在尝试使用$
,因此它们不起作用。让我们了解如何使一个版本的jQuery工作,而不是试图了解如何使两个版本工作。有关下一步,请参阅我答案中的注释。jQuery-1.3.1-于2009年1月发布。我认为是时候让您了解我想知道如何摆脱这种依赖关系,但是当我只使用1.10.2时,只使用add row,而不使用tablesorter和pager。@Niang-tablesorter说它与jQuery 1.2.1或更高版本兼容。你应该能够将1.10.2与两段代码一起使用。我建议你不要使用defer
或async
处理。然后,首先加载jQuery,然后加载任何插件,然后运行使用这些属性的JS,并确保您自己的jQuery位于$(document.ready()
块中或在HTML之后。@Niang-也“不起作用”不是最基本的描述。请执行一些基本调试。告诉我们在浏览器调试日志中显示了哪些错误,然后放入一些console.log()
语句,以确定您的代码是否正在运行以及是否存在任何错误等。当使用jquery 1.10.2时,只有add函数起作用。当我使用1.3.1.并删除用于添加行的代码时,表排序器和分页将起作用。@Niang-使用.noConflict()
使用其他人的插件相当复杂。我不建议您这样做。如果只加载jQuery 1.10.2而不加载.noConflcit()会发生什么
语句。您的两段代码都应该只使用一个版本的jQuery。如果它不起作用,请发布您看到的错误。或者将该库升级到现代版本。
<script type="text/javascript" src="./js/jquery-1.10.2.js"></script>
<script>jQuery.noConflict();</script>
<script type="text/javascript" src="./js/jquery-1.3.1.min.js"></script>//Now replace this jQuery with $