0

我在 phonegap 应用程序中使用 jqm-calendar 来显示日历。

在日历下面的日历页面中,此列表中有 jqm 的 ul 列表 li 项目未加载。

问题仅适用于黑莓设备,它在 android 和 iphone 版本上运行良好。

问题上线:

 e("<li>" + c + "</li>").appendTo(f);

我也尝试了所有注释选项,但<li>在设备上调试时没有加载单个项目。

(function (e) {
e.jqmCalendar = function (t, n) {
    function l() {
        i.settings = e.extend({}, r, n);
        o = e("<table/>");
        var t = e("<thead/>").appendTo(o),
            l = e("<tr/>").appendTo(t),
            c = e("<th class='ui-bar-" + i.settings.theme + " header' colspan='7'/>");
        $previous = e("<a href='#' data-role='button' data-iconpos='notext' class='previous-btn'>Previous</a>").click(function (e) {
            y(new Date(i.settings.date.getFullYear(), i.settings.date.getMonth() - 1, i.settings.date.getDate()))
        }).appendTo(c);
        u = e("<span/>").appendTo(c);
        $previous = e("<a href='#' data-role='button' data-iconpos='notext' class='next-btn'>Next</a>").click(function (e) {
            y(new Date(i.settings.date.getFullYear(), i.settings.date.getMonth() + 1, i.settings.date.getDate()))
        }).appendTo(c);
        c.appendTo(l);
        l = e("<tr/>").appendTo(t);
        for (var h = 0, p = [].concat(i.settings.days, i.settings.days).splice(i.settings.startOfWeek, 7); h < 7; h++) {
            l.append("<th class='ui-bar-" + i.settings.theme + "'><span class='hidden'>" + p[h] + "</span></th>")
        }
        a = e("<tbody/>").appendTo(o);
        o.appendTo(s);
        f = e("<ul data-role='listview' class='bdnamelist'/>").insertAfter(o);
        console.log(f);
        y(i.settings.date)
    }


 s.bind("change", function (t, n) {
        var r = new Date(n.getFullYear(), n.getMonth(), n.getDate() + 1, 0, 0, 0, 0);
        var s = i.settings.events[0];
        //console.log("DEMO begin: " + n + " rows found.");
        //console.log("DEMO end: " + r + " rows found.");
        console.log("DEMO event: " + s + " rows found.");
        f.empty();
        for (var o = 0, t; t = i.settings.events[o]; o++) {
            if (t[i.settings.end] >= n && t[i.settings.begin] <= r) {
                var u = t[i.settings.summary],
                    a = (t[i.settings.begin] > n ? t[i.settings.begin] : n).toTimeString().substr(0, 5),
                    l = (t[i.settings.end] < r ? t[i.settings.end] : r).toTimeString().substr(0, 5),
                    c = t[i.settings.meb_name],
                    h = a + "-" + l;
                //e("<li>" + c + "</li>").appendTo(f);
                //e("<li>" + c + "</li>").appendTo(".bdnamelist");
                  e($('<li></li>').html(c)).appendTo(f);                    
                console.log(f);                 
            }
        }
        f.trigger("create").filter(".ui-listview").listview("refresh")
    });
4

1 回答 1

0

哇,那些变量名相当混乱。你为什么不晚点?原线是

 $("<li>" + (( timeString != "00:00-00:00") ? timeString : "" ) + " " + summary + "</li>").appendTo($listview);

确实可以替换为:

var str = ((timeString != "00:00-00:00") ? timeString : "" ) + " " + summary;
$("<li>").html(str).appendTo($listview);

此函数要求 $ (在您的情况下为 e) 是 jQuery,并且 $listview 是一个 jQuery 元素。这是一个非常基本的 jQuery 操作,所以程序此时可能不会失败。这些点是否出现在正确的日期?也许 BB 解析日期有点不同。顺便问一下,是否有错误抛出并且您的日志消息是否显示?

于 2013-10-26T18:42:03.570 回答