0

我在 jQuery Mobile 中实现了一个可折叠列表。我正在尝试开发一个变量,该变量根据天气简单地设置为 true 或 false,或者列表中的任何元素都没有展开(换句话说,列表中的每个元素都折叠了,它只会是 false)。我能想到的唯一方法是通过“展开”和折叠事件,但折叠事件在页面加载时为每个列表项触发一次,并且在单击元素时触发多次。以下是我当前的代码。任何人都可以告诉我我做错了什么或建议一种替代方法吗?

JS:

$("#listElement").bind('collapse', $.proxy(function () {
    alert("collapse");
}, this)).bind('expand', $.proxy(function () {
    alert("expand");
}, this));

html:

<div id='listElement' data-role="collapsible" data-collapsed='true'>
        <h3>Header Text</h3>
    <p>collaplible content</p>
</div>

更新:

下面的评论说明了我的部分问题来自于我在填充列表时动态设置“折叠”处理程序的事实。请参见下面的代码:

JavaScript:

for (var i = 0; i < 10; i++) {
    var element = $("#element").clone();
    $("#list").append(makeListElement(element));
}

function makeListElement(element) {
    element.find('h3').append("Some Html");
    element.bind('collapse', $.proxy(function () {
        alert("collapse");
    }, this)).bind('expand', $.proxy(function () {
        alert("expand");
    }, this));

}
}

克隆元素:

<div id='element' data-role="collapsible" data-collapsed='true'>
        <h3></h3>

    <p></p>
</div>
4

0 回答 0