不同版本的表排序器和 ui 对话框出现 jquery 错误
我对 jquery 很陌生,所以希望这些东西不是很明显。我寻找解决方案,但没有找到专门针对我的问题的解决方案。
我有一个经典的 asp 页面,其中有一个表,使用 jquery .get 每 15 秒更新一次,然后附加表元素。
$(document).ready(function() {
refresh();
var int = self.setInterval("refresh()",15000);});
function refresh(){
$("table").tablesorter();
$("table tbody tr").remove();
//$("#ajax-append").click(function() {
$.get("assets/ajax-content.asp", function(html) {
// append the "ajax'd" data to the table body
$("table tbody").append(html);
// let the plugin know that we made a update
$("table").trigger("update");
});
return false;}
这工作正常,我使用这里的示例作为指导: http://tablesorter.com/docs/example-ajax.html
唯一的问题是在“ajax'ed”表中的一列中是带有 onclick 的 img 标签
function openMessage(strID){
if (strID != ""){
id = strID;
//alert(id);
$('#dialog').dialog('open');
}
} 我在对话框中使用 id 变量。我知道这段代码可以工作,因为在 jquery tablesorter (昨天)之前它已经使用了几个月,并且仍然(在生产中)。
我从 FireBug 得到的错误是:
$("#dialog").dialog 不是函数 [中断此错误] $('#dialog').dialog('open');
我使用的 jquery 版本与他们从 tablesorter 演示中推荐的版本相同: http://tablesorter.com/jquery-latest.js 这并不是什么新鲜事。我注意到如果我使用 jquery 文件:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.js"></script>
排序器不起作用。另外,如果我添加 ui 包括:
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js">/script>
排序不起作用。如果我切换出 jquery include (而不是 ui),则 .get() 不起作用,只显示表头。
我的问题是,jquery 和 ui 的版本是否有区别? 我的消息对话框非常简单,只是打开一个对话框,该对话框还使用 ajax 根据单击的按钮将读/写发布到数据库。当我包含 ui 时,为什么 tablesorter 版本的 jquery 无法工作?有什么解决方法吗?
我的代码中是否有任何内容可能会破坏它?
非常感谢您提前提供的任何帮助!
I am quite new to jquery so hope this stuff isnt obvious. I searched for a solution but did not find one specific to my question.
I have a classic asp page which has a table that is updated every 15seconds using jquery .get and then append the table elements.
$(document).ready(function() {
refresh();
var int = self.setInterval("refresh()",15000);});
function refresh(){
$("table").tablesorter();
$("table tbody tr").remove();
//$("#ajax-append").click(function() {
$.get("assets/ajax-content.asp", function(html) {
// append the "ajax'd" data to the table body
$("table tbody").append(html);
// let the plugin know that we made a update
$("table").trigger("update");
});
return false;}
This works fine, I used the example here as a guide:
http://tablesorter.com/docs/example-ajax.html
The only problem is that in one of the columns in the "ajax'ed" table is an img tag with onclick
function openMessage(strID){
if (strID != ""){
id = strID;
//alert(id);
$('#dialog').dialog('open');
}
}
I use the id variable in the dialog. I know this code works because before the jquery tablesorter (yesterday) it was being used for a few months, and still is (in production).
The error I get from FireBug is:
$("#dialog").dialog is not a function
[Break On This Error] $('#dialog').dialog('open');
I am using the same version of jquery that they recommend from the tablesorter demo:
http://tablesorter.com/jquery-latest.js
Which isnt very new. I noticed if I use my jquery file:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.js"></script>
The sorter does not work. Plus if I add the ui includes:
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js">/script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
the sort does not work. If i switch out the jquery includes (not the ui) then the .get() does not work and only a table header shows up.
My question is, are the version of jquery and ui discriminate to which they can work with?
My msg dialog is quite simple just opens a dialog which also uses ajax to post read/write to a db depending on the button clicked. Why would tablesorter's version of jquery not work when I include the ui? Any workarounds?
Is there anything in my code that could be breaking it?
Thanks very much for any help in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我们将 jquery 1.4.2 与 tablesorter 插件一起使用,没有出现任何问题。您可以在此处查看此操作:http://www.bet-mate.com
我们不使用然而jquery UI。
一般来说,dialog方法是jquery UI的一种方法。所以排除这一点是没有意义的。确保您的 jquery UI 版本与您正在使用的 jquery 版本兼容。
如果这没有帮助,请尝试获取适用于 jquery 1.4.2 的 jquery UI 版本,并使用它们来测试是否可以解决问题。
We are using jquery 1.4.2 together with the tablesorter plugin without issues. You can see this in action here: http://www.bet-mate.com
We are not using jquery UI however.
In general, the dialog method is a method of jquery UI. So to exclude that does not make sense. Make sure you have a version of jquery UI that is compatible with the jquery version that you are using.
If that does not help try to get a jquery UI version that works with jquery 1.4.2 and use those to test if this solves the issue.