簡體   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