我有一个非常简单的骨干js结构。
var Step1View = Backbone.View.extend({
el:'.page',
render:function () {
var template = _.template($('#step1-template').html());
this.$el.html(template);
}
});
var step1View = new Step1View();
var Router = Backbone.Router.extend({
routes:{
"":"home"
}
});
var router = new Router;
router.on('route:home', function () {
step1View.render();
})
Backbone.history.start();
这很好但是我无法调用这个简单的jquery函数。
$(document).ready(function(){ $( '尖端')工具提示(); });
这里的男生错误。需要在路由中放置Jquery onload函数。我对骨干很新,所以我不确定这是不是最好的做法。但以下工作。
render:function () {
var that = this;
var savings = new Savings();
savings.fetch({
success:function () {
var template = _.template($('#step3-template').html(), {savings:savings.models});
that.$el.html(template);
// put your jquery good ness here
$('.tip').tooltip();
$(".step3-form").validate();
}
})
}
答案 0 :(得分:2)
看起来你找到了答案!只是想分享你可以通过这样做来缩小你的jQuery范围。
savings.fetch({
success:function () {
var template = _.template($('#step3-template').html(), {savings:savings.models});
that.$el.html(template);
that.$el.find('.tip').tooltip();
that.$el.find(".step3-form").validate();
}
您的示例中的内容有效,但每次都使用类tip
扫描整个文档,您可以使用刚刚创建的元素向下扫描您刚刚在其中创建的提示。轻微优化。
希望这有用!
答案 1 :(得分:0)
看起来您找到了答案!只是想分享一下,您可以这样做来缩小jQuery的范围。
savings.fetch({
success:function () {
var template = _.template($('#step3-template').html(), {savings:savings.models});
that.$el.html(template);
that.$el.find('.tip').tooltip();
that.$el.find(".step3-form").validate();
}
示例中的内容可以工作,但每次都使用class tip扫描HTML的整个文档,您可以在其中使用刚创建的元素向下扫描仅在其中创建的tip。轻微优化。
希望这会有所帮助!