繁体   English   中英

骨架.js-切换元素

[英]backbone.js - toggle element

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

我该如何解决?

试试这个(不切换):

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

我希望它能有所帮助(对不起4我的英语不好!)。

这里的例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM