设置动态jQuery选择器

时间:2016-07-13 01:14:07

标签: jquery

我无法使用此代码。我试图做的是根据点击的给定ID显示一个div,并隐藏所有其余的ID。所有的div都有相同的类。这是我认为的逻辑:

  1. div.slide AND div#slide1(ID基于点击是动态的)show div#slide1
  2. div.slide AND NOT div#slide1 hide div.slide
  3. 这是我到目前为止所拥有的。我不确定我是正确设置slideId变量还是正确传递数据:

    $(function() {
        $("#slide1Nav").bind('click', { id: '#slide1' }, scroller);
        $("#slide2Nav").bind('click', { id: '#slide2' }, scroller);
        $("#slide3Nav").bind('click', { id: '#slide3' }, scroller);
        $("#slide4Nav").bind('click', { id: '#slide4' }, scroller);
        $("#slide5Nav").bind('click', { id: '#slide5' }, scroller);
        $("#slide6Nav").bind('click', { id: '#slide6' }, scroller);
    
        function scroller(event){
            var scrollYPos = $(event.data.id).offset().top;
            var slideId = $(event.data.id);
            event.preventDefault();
            TweenMax.to(".slide",.5, {opacity:0, ease:Power4.easeOut, onComplete:function() {
                $(slideId).css('display', 'block');
                $('div.slide:not(slideId)').css('display', 'none');
                console.log(slideId);
            }});
            TweenMax.to(window, 1, {scrollTo:{y:scrollYPos, x:0}, ease:Power4.easeOut, delay:.5});
            TweenMax.to(".slide",2, {opacity:100, ease:Power4.easeOut, delay:1});
    
        }
    
    });
    

2 个答案:

答案 0 :(得分:0)

因为您使用的是jQuery,所以您可以使用它来代替:

$(slideId).show();
$('div.slide:not(slideId)').hide();

改为使用:

public partial class GlossaryController : Controller {

    [Route("~/glossary", Order = 2)]
    [Route("~/{countryCode}/glossary", Order = 1)]
    public virtual ActionResult Index()
    {
      return View();
    }
}

答案 1 :(得分:0)

变化:

$(slideId).css('display', 'block');
$('div.slide:not(slideId)').css('display', 'none');

$(slideId).show();
$('div.slide:not(' + slideId + ')').hide();

还要感谢jf指向id