我对元素使用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});
}
});
我在alert()上得到 b 。
我如何解决这个问题?
答案 0 :(得分:0)
试试这个(不用切换):
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");
}
},
我希望它可以提供帮助 (抱歉,我的英语不好!)。