0

我正在使用带下划线的 mobiscroll。我有一个下划线模板。我需要对从模板添加的元素执行 .scroller。

这是模板:

<form>
    <input type="text" id="startdate" name="startdate"/>
</form>

这是视图中的渲染函数:

var MyView = Backbone.View.extend({
    template: render('auctioncreate'),
    render: function() {
        this.$el.empty().append(this.template);
        $('#startdate').scroller();  // this does not work
    }
});

render 是一个加载 html 并将其制成模板的函数。为了完整起见,这里是渲染函数的代码:

function render(tn, td) {
    if(!render.tc) {
        render.tc = {};
    }
    if(! render.tc[tn]) {
        var td = 'assets/js/templates';
        var tu = td + "/" + tn + ".html";
        var ts;
        $.ajax({
            url: tu,
            method: 'GET',
            async: false,
            dataType: 'html',
            success: function(d) {
                ts = d;
            },
            error: function(e) {
            }
        });
        render.tc[tn] = ts;
    }
    return _.template(render.tc[tn]);
}

我尝试在模板本身中添加一个 ondomready javascript。它不能立即工作,但刷新后它确实工作?!

$(function() {
    $('#startdate').scroller(); // this work if I refresh once.
});

基本上,我需要在元素附加到 dom 后对其应用日期时间选择器。

4

1 回答 1

1

错误出现在视图的渲染函数中。

代替:

$('#startdate')...

它应该是:

this.$('#startdate')...
于 2012-09-30T20:18:59.467 回答