[英]backbone.js - toggle element
I use toggle() for an element. 我对元素使用toggle()。 When user clicked a link content slide down and clicked again content slide up. 当用户单击链接时,内容向下滑动,然后再次单击,内容向上滑动。
I use this code for toggle: 我使用此代码进行切换:
var LastItem = Backbone.View.extend({
el: '#item-div',
render: function(){
var itemListObj = this;
items.fetch({
success: function(){
var itemTemplate = _.template($('#item-list-template').html(), {items: items.models, item_meta: items.meta});
itemListObj.$el.html(itemTemplate);
$('#img-loading-item').css('display', 'none');
}
});
},
events: {
'click .feed-item' : 'itemSlideDown',
'click #load-more' : 'loadMoreItem'
},
itemSlideDown: function(e){
var tog = 0;
var itemId = $(e.currentTarget).attr('id');
$('#itemview-'+itemId).toggle(function() {
alert('a');
},
function(){
alert('b');
});
},
loadMoreItem: function(e){
var moreLink = $(e.currentTarget);
var nextUrl = moreLink.data('url');
moreLink.remove();
var appendItems = new AppendItemView();
appendItems.render({url: nextUrl});
}
});
I get just b on alert(). 我在alert()上只得到b 。
How I can fix this? 我该如何解决?
Try this (without toggle): 试试这个(不切换):
itemSlideDown: function(e){
var tog = 0;
var itemId = $(e.currentTarget).attr('id');
var $item = $('#itemview-'+itemId);
if($item.hasClass("show")){
alert("show!");
//behavior to show effect
$item.addClass("hide").removeClass("show");
}else if($item.hasClass("hide")){
alert("hide!");
//behavior to hide effect
$item.addClass("show").removeClass("hide");
}else{
alert("show!");
//your default behavior if class isn't any (Show for me)
$item.addClass("hide");
}
},
i hope it can help (sorry 4 my bad english!). 我希望它能有所帮助(对不起4我的英语不好!)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.