0

可折叠 div 的样式未更新。我正在使用最新的 jquery-mobile 1.2.0 版本。我的代码如下。请就缺少的内容提出建议

HTML

<div data-role="page" id="eventDetails">
<div data-role="content">
<div data-role="collapsible-set" class="collapsibleSetClass">
    <div data-role="collapsible" data-content-theme="b" class="collapsibleClass">
    </div>
</div>

</div><!-- /content -->
</div>

使用的javascript:

    $(document).bind("mobileinit", function(){
        $.mobile.changePage.defaults.changeHash = false;
        $.mobile.collapsibleset.prototype.options.initSelector = ".collpasibleSetClass";
        initEvents();
    });

var initEvents = function(){
 $.mobile.changePage( "#eventDetails", { transition: "slide"} );
 var $description = $('.collapsibleClass');
 $description.html('');
 var $title = $('<h3/>').append(eventObj.eventTitle);
 var $eventDetails = $('<p/>').append(eventObj.eventDescription);
 $description.append($title).append($eventDetails);
 $('.collapsibleSetClass').collapsibleset("refresh");
}
4

1 回答 1

1

您正在尝试刷新尚未初始化的小部件。您调用事件处理程序,该处理程序在初始化任何内容之前触发initEvents()mobileinit

所以很可能你真正需要做的就是删除刷新可折叠小部件的行,jQuery Mobile 将自动初始化它们:

var initEvents = function(){
 $.mobile.changePage( "#eventDetails", { transition: "slide"} );
 var $description = $('.collapsibleClass');
 $description.html('');
 var $title = $('<h3/>').append(eventObj.eventTitle);
 var $eventDetails = $('<p/>').append(eventObj.eventDescription);
 $description.append($title).append($eventDetails);
 //$('.collapsibleSetClass').collapsibleset("refresh");
}

另请注意,您必须在页面的 HTML 之后包含所有 JS,否则您选择的 HTML 元素将不可用。我建议使用pageinit第一页而不是mobileinit因为这个原因。

于 2012-12-04T20:32:07.347 回答