在模板元素上设置滚动

时间:2012-09-30 19:53:49

标签: backbone.js underscore.js mobiscroll

我使用带有下划线的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后对元素应用日期时间选择器。

1 个答案:

答案 0 :(得分:1)

错误发生在View的渲染功能中。

而不是:

$('#startdate')...

应该是:

this.$('#startdate')...