为每个div添加动态ID,稍后再调用它们

时间:2017-02-06 15:57:47

标签: jquery

我生成了多个菜单,但它们在我的内容中有不同的菜单项和不同的位置。

对于每个' .ff_ftmenu'和' .ff_ftmenu_block'有一个单独的ID,因此ffm​​enu-0例如匹配。

点击' .ff_ftmenu_block#ffmenu-0'和' .ff_ftmenu#ffmenu-0'被触发并打开。这就是主意。但是如何分配' ffmenu - ' + index'循环所以只有一个会打开?

  var tl = new TimelineMax({paused:true, reversed:true});
  tl
    .staggerFromTo('.ff_ftmenu li', 1.5,
      {rotationX:-90, transformOrigin:"50% 0%"},
      {rotationX:0, ease:Elastic.easeOut}, 0.4);

  $('.ff_ftmenu').each(function(index){
    $(this).attr('id', 'ffmenu-' + index);
    //console.log( this.id );
  });

  $('.ff_ftmenu_block').each(function(index){
    $(this).attr('id', 'ffmenu-' + index);
  });

  $('.ff_ftmenu_block').each(function(index){
    $(this).click(function(index){
    $('.swp-col-1-3 .ff_ftmenu').toggleClass('open');

      if (!$('.swp-col-1-3 .ff_ftmenu').hasClass('open')) {
        TweenMax.to($('.swp-col-1-3 .ff_ftmenu'), 0.5, {opacity: 0});
        tl.reversed() ? tl.play() : tl.pause(0).reversed(true);
      }
      else {
        TweenMax.to($('.swp-col-1-3 .ff_ftmenu'), 1, {opacity: 1});
        tl.reversed() ? tl.play() : tl.pause(0).reversed(true);
      }

    });
  });

1 个答案:

答案 0 :(得分:0)

在这种情况下使用jQuery来获取你点击的元素,你不需要每个元素。所以我认为你可以替换

$('.ff_ftmenu_block').each(function(index){
$(this).click(function(index){
$('.swp-col-1-3 .ff_ftmenu').toggleClass('open');

  if (!$('.swp-col-1-3 .ff_ftmenu').hasClass('open')) {
    TweenMax.to($('.swp-col-1-3 .ff_ftmenu'), 0.5, {opacity: 0});
    tl.reversed() ? tl.play() : tl.pause(0).reversed(true);
  }
  else {
    TweenMax.to($('.swp-col-1-3 .ff_ftmenu'), 1, {opacity: 1});
    tl.reversed() ? tl.play() : tl.pause(0).reversed(true);
  }

});

(只是为了给你一个起点 - 想法)

$('.ff_ftmenu_block').on('click', function(){
    console.log($(this).attr('id');
    // move on from here with the id
    // and do whatever you want to do
});