backbone.js - 切换元素

时间:2013-12-02 12:28:46

标签: javascript jquery backbone.js

我对元素使用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

我如何解决这个问题?

1 个答案:

答案 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");
    }
},

我希望它可以提供帮助 (抱歉,我的英语不好!)。

Example HERE