Jquery Mobile Filterable选择长列表

时间:2015-07-21 21:03:54

标签: jquery-mobile

我正在尝试使用类似于演示页面的过滤器创建自定义选择菜单:

http://demos.jquerymobile.com/1.4.5/selectmenu-custom-filter/

它适用于短名单:

http://jsfiddle.net/dw1c1439/

但它不适用于长列表:

https://jsfiddle.net/pppzLbfu/

我一直收到错误:

SCRIPT5007:无法获取未定义或空引用的属性“jqmData”

我的完整代码是

df2 <- data.frame(yi = 0.15)

ggplot(data = df, aes(x = Outcome2, y = d, fill = study)) + 
  geom_bar(position = "dodge", stat = "identity") +
  geom_hline(data = df2, aes(yintercept = yi, linetype = factor(yi)), show_guide = TRUE) +
  scale_linetype_manual(name = "avg tx effect", values = "dashed", labels = "") +
  guides(fill = guide_legend(override.aes = list(linetype = "blank")))

2 个答案:

答案 0 :(得分:2)

如果你仍然需要,这里是解决方案: 演示本身有一些错误。这是一种方法:

// demo-dialog是添加的selectmenu(demo)+(-dialog)的ID //通过jQM动态创建自定义选择菜单

$(document).on("pagecreate", "#demo-dialog", function (e) {
    var form = $("<form><input data-type='search'/></form>"),
    page = $(this);

$(".ui-content", this)
    .prepend(form);

form.enhanceWithin()
    .on("keyup", "input", function () {
    var data = $(this).val().toLowerCase();
    $("li", page).addClass("ui-screen-hidden")
        .filter(function (i, v) {
        return $(this).text().toLowerCase().indexOf(data) > -1;
    }).removeClass("ui-screen-hidden");
});

$(document).on("pagecontainerhide", function () {
    $("#demo-menu li").removeClass("ui-screen-hidden");
    $("input", form).val("");
});

});

供参考: https://forum.jquery.com/topic/cannot-read-property-jqmdata-of-undefined

答案 1 :(得分:0)

这似乎解决了我 - 在&#39; pagecontainerhide&#39;处理程序,更改中的参数 pageIsSelectmenuDialog函数来自&#39; data.toPage&#39;到&#39; data.prevPage&#39;如:

if ( !pageIsSelectmenuDialog( data.prevPage ) ) {
       return;
}