【发布时间】:2012-01-14 01:16:46
【问题描述】:
除了标题的onclick 事件之外,有没有人知道任何其他方法来捕获扩展或折叠标有data-role="collapsible" 的组件的事件?
编辑:我想要某种事件,它还将提供有关组件展开/折叠状态的信息。
【问题讨论】:
标签: jquery jquery-mobile
除了标题的onclick 事件之外,有没有人知道任何其他方法来捕获扩展或折叠标有data-role="collapsible" 的组件的事件?
编辑:我想要某种事件,它还将提供有关组件展开/折叠状态的信息。
【问题讨论】:
标签: jquery jquery-mobile
collapsible 块有自定义事件。您可以绑定到expand 和collapse 事件:
$('#my-collapsible').bind('expand', function () {
alert('Expanded');
}).bind('collapse', function () {
alert('Collapsed');
});
这是一个 jsfiddle:http://jsfiddle.net/6txWy/
【讨论】:
$('.selector').on('collapsibleexpand', function(){}); 和 collapsiblecollapse 类似。 :(
在 jQuery Mobile 1.4 中有 collapsiblecollapse 和 collapsibleexpand 事件。 https://api.jquerymobile.com/collapsible/#event-collapse
$( ".selector" ).on( "collapsiblecollapse", function( event, ui ) {} );
【讨论】:
你可以绑定任何你想要的事件,例如:
演示:
JS
$("div:jqmData(role='collapsible')").each(function(){
bindEventTouch($(this));
});
function bindEventTouch(element) {
element.bind('tap', function(event, ui) {
if(element.hasClass('ui-collapsible-collapsed')) {
alert(element.attr('id')+' is closed');
} else {
alert(element.attr('id')+' is open');
}
});
}
HTML
<div data-role="page" id="home">
<div data-role="content">
<div data-role="collapsible" id="number1">
<h3>Header #1</h3>
<p>I'm Header #1</p>
</div>
<br />
<div data-role="collapsible" data-collapsed="false" id="number2">
<h3>Header #2</h3>
<p>I'm Header #2</p>
</div>
</div>
</div>
【讨论】:
我认为没有其他方法可以做到这一点。我不相信您可以在这种情况下使用animationComplete,如下所述:
http://jquerymobile.com/test/docs/api/events.html
也许您可以在特定元素上使用某些类更改,这实际上并不比绑定标题的 onclick 事件更好。
【讨论】:
您可以尝试jQuery mobile 点击事件。我没有亲自使用过,但听说它类似于mousedown 事件处理程序。如果您提供更多关于 onclick 不起作用的原因的详细信息,也许我们可以为您提供更多帮助。
【讨论】:
onclick 有效。只是我想使用一些不同的东西,也许还会提供有关组件展开/折叠状态的信息。