【发布时间】:2014-08-10 16:11:51
【问题描述】:
我正在构建一个Backbone App,我的视图是这样的
define(function (require) {
'use strict';
var MyBackbone = require('mybackbone'),
template = require('utils/template'),
Handlebars = require('handlebars'),
Contest = require('controllers/ads/contest');
var Main = MyBackbone.View.extend({
initialize : function( options ) {
MyBackbone.View.prototype.initialize.apply(this, [options]);
this.template = Handlebars.compile( template.get( "presentation/page/main" ) );
this.loadChildViews( "footer", new Contest() );
},
render: function(){
var renderedContent = this.template();
this.$el.html( renderedContent );
return this;
},
events: {
"click .show-message": "hideAndShowMessage"
},
hideAndShowMessage: function(e){
var self = this;
e.preventDefault();
this.$el.find('.is-hidding:visible').addClass('hideFade');
this.$el.find('.bg-lets-go').removeClass('hideFade');
var targetLink = $(e.currentTarget);
targetLink.removeClass('show-message');
setTimeout(function(){
$('a.no-style:not(".show-message")', self.$el).trigger("click");
//$('a.no-style:not(".show-message")').click();
//targetLink.trigger('click');
}, 750);
}
});
return Main;
});
还有我的 main.jade
div.main-container
.container-fluid.is-hidding
.row
.col-xs-6
a.no-style.btn-ipurpose.show-message(href="/#ipurpose")
i.fa.fa-tree.fa-3x
| JE PROPOSE
.col-xs-6
a.no-style.btn-ichoose.show-message(href="/#ichoose")
i.fa.fa-flag-checkered.fa-3x
| JE CHOISIS
.bg.bg-lets-go.is-hidding.hideFade
.bg.bg-simple
目标是在点击链接后 750 毫秒内显示“让我们开始”消息。
我在 setTimeout 中尝试了一些东西,但它们都不起作用。 没有javascript错误,这是正确的方法吗?
【问题讨论】:
-
要显示一个元素,然后在 750 毫秒后将其隐藏,您可以执行以下操作:
$('.bg-lets-go').show("slow").delay(750).hide("slow");。抱歉,我对 Jade 和 Backbone.js 不熟悉,无法给出完整的答案。 -
你怎么知道点击没有做任何事情?什么在乎那些碎片?基本结构似乎工作正常:jsfiddle.net/ambiguous/mb85yc2r,你有什么不同?
-
你为什么不直接使用 toastr codeseven.github.io/toastr 它也有一个内置的超时时间。
-
@DaveSalomon,我在不透明度上使用 css3 过渡,这不是我要寻找的行为
-
@ZeeTee 我不需要额外的库来做到这一点:/
标签: javascript jquery events backbone.js pug