Seaside & jQuery UI:可排序列表不起作用?



这里是初学者。我目前正在学习Seaside,以及如何将jQuery与之集成。我一直在尝试以自己的形象实现Seaside jQuery UI功能测试套件中提供的一些示例。

由于某种原因,我无法使用可排序列表。我复制&粘贴了示例中的代码,但不起作用。我已经确保添加了jQuery库,并测试了它与可点击的动画标题一起工作。但我的可排序列表只是在没有交互的情况下呈现出来。

检查页面源确实会显示错误消息:";TypeError:undefined不是函数(…(";,但我不明白这意味着什么?

如有任何帮助,我们将不胜感激。我想掌握这一点,并需要了解为什么它不起作用。请参阅下面的代码,完全复制自他们的示例,但将列表分配给items变量除外:

| items |
items := OrderedCollection newFrom: {'peas' . 'carrots' . 'beetroot'}.
html unorderedList
script: (html jQuery new sortable
onStop: (html jQuery ajax
callback: [ :values | items := values ]
passengers: (html jQuery this find: 'li')));
with: [
items do: [ :each |
html listItem
class: 'ui-corner-all';
passenger: each;
with: each ] ]

包括浏览器中呈现的jQuery代码:

function onLoad() {
$("#id3").sortable({              <-- TypeError occurs here
"stop": function() {
$.ajax({
"url": "/jquery",
"data": ["_s=To5SuUU8YuW_HSjD", "_k=MpvlOw_BWjmgF9Uy", "1", "2=" + encodeURIComponent($.map($(this).find("li").get(), function(each) {
return each.id
}).join(","))].join("&")

您是否也添加了jQueryUI库?我认为在jQuery上找不到"可排序"。。。所以它可能没有被加载。

有几点需要注意。

  1. sortable(JQSortable类(附带jQuery UI,因此首先确保在您的Seaside应用程序(例如JQUiDevelopmentLibrary(中包含jQuery UI库。

  2. items变量是一个方法临时变量,因此它将始终按该顺序具有新项。它应该是一个实例变量(但我猜您这样做是为了这个Stack Overflow示例(。

  3. ajax函数中的this对象不再引用列表元素。我向<ul>标记(id: 'list'(添加了一个id,并且在传递给onStop:处理程序的JS对象中引用了这样的jQuery对象。

有了这些更改,我可以让它正常工作。


renderContentOn: html
items := items
ifNil: [ OrderedCollection newFrom: {'peas' . 'carrots' . 'beetroot'} ].
html unorderedList
id: 'list';
script:
(html jQuery new sortable
onStop:
(html jQuery ajax
callback: [ :values | items := values ]
passengers: ((html jQuery id: 'list') find: 'li')));
with: [ items
do: [ :each | 
html listItem
class: 'ui-corner-all';
passenger: each;
with: each ] ]   

相关内容

  • 没有找到相关文章

最新更新