【问题标题】:JQueryUI accordion changestart event - how to get data out of it?JQuery UI 手风琴更改开始事件 - 如何从中获取数据?
【发布时间】:2011-03-31 15:05:46
【问题描述】:

http://jqueryui.com/demos/accordion/#event-changestart

我正在尝试让 JQuery ajax 请求获取一些数据并在我的每个 JQueryUI 手风琴行展开时填充 div 的主体。我的意图是在手风琴的可点击 h3 中拥有一个隐藏字段或类似的字段,当 changestart 事件触发时,ajax 将关闭并为该手风琴行获取一个独特的页面,并用有用的 html 填充它。

我的问题是,我似乎无法找到有关 changestart 事件函数参数中返回的对象的属性或值的任何信息。有谁知道如何执行此操作或获取这些值?

我现在的代码是这样的:

$("#accordion").accordion({
                collapsible: true,
                active: false,
                changestart: function(event, ui) {
                    alert('hello:' + event.target.id + ':' + ui.id);
                }
            });

这会引发显示消息hello:accordion:undefined的警报

我看过这篇文章,似乎与我想要弄清楚的内容一致...... jQuery UI object type for "ui" object passed to the callback function?

谢谢,

马特。

【问题讨论】:

标签: jquery-ui accordion


【解决方案1】:

看起来ui 持有这个:

$('.ui-accordion').bind('accordionchangestart', function(event, ui) {
  ui.newHeader // jQuery object, activated header
  ui.oldHeader // jQuery object, previous header
  ui.newContent // jQuery object, activated content
  ui.oldContent // jQuery object, previous content
});

【讨论】:

  • 是的,但是这些是干什么用的?例如, ui.oldHeader 似乎有很多属性,但它们都与我之前单击的标题中的 html 无关。它不提供一个 ID。
  • 更重要的是,这些属性如何帮助找到被选中并随后触发 changestart 事件的 html dom 对象?
  • changestart 事件绑定到手风琴而不是开始该过程的元素。订阅有问题的h3click 事件怎么样...
  • 谢谢——这正是我想要的;我还没有意识到什么被绑定等等......
【解决方案2】:

您可以轻松访问这些 ui.new|old 元素的内容。 它们是 jQuery 元素,这就是它们看起来有点奇怪的原因。

jQuery方式

ui.newHeader.first().html()

如果您需要访问 dom 元素,请使用 .get()

ui.newHeader.get().first()

【讨论】:

    猜你喜欢
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多