2011-07-27 5 views
0

작은 문제가 생겼습니다. 앵커 태그가 가득 찬 페이지가 하나 있는데, 그 중 하나가 선택되면 애니메이션이 시작됩니다. 내 유일한 문제는 바로 그 것입니다. 앵커 태그를 (this)로 정의 했으므로 일련의 앵커가 각각 애니메이션을 수행 할 때 선택됩니다. 현재 어떻게 태그를 변경할 수 있습니까?어떻게 내 앵커 태그를 만들 수 있습니까?

내 코드는 지금까지 있습니다 :

$('a').bind('click', function(e){ 
      $ajax = $('<div id="ajax"></div>'); 
      $ajax.prependTo('#container'); 
      $('html, body').animate({ scrollTop: 0 }, 'fast', function(){ 
       $ajax.animate({ height: 300 }, 'slow', function(){ 
        $preloader = $('<div id="preloader"></div>').hide(); 
        $preloader.prependTo('#ajax').fadeIn('normal'); 
       }); 
      }); 
      e.preventDefault(); 
     }); 
+1

난 당신이 요구하는 것을 이해하지 못하고 덮어 전역에있는 이것은 나쁜입니다. 'click' 함수 안에서 앵커는 자동으로'this'로 설정됩니다. –

+1

달성하고자하는 것이 확실하지 않지만 몇 가지 문제점이 있습니다. (a)'$ ajax'는 전역 적입니다 (의도적으로?). (b) 지역 단위로 만들면 여러 요소가 동일한 ID를 갖게됩니다. (c)'$ preloader'에 의해 참조 된 요소는 절대로 DOM 트리에 추가되지 않습니다. –

+0

클릭하면 하나의 앵커로 실행되도록하려는 경우 Brombomb answer를 참조하십시오. 그렇지 않으면 명확히하십시오. –

답변

1

에서 JQuery와에서 id-selectorselectors에 대한 몇 가지 추가 정보를 원하시면입니다. 이 방법을 만드는 모든 변수가 서로

$('a').bind('click', function(e){ 
    var $ajax = $('<div></div>').prependTo('#container'); 

    $('html, body').animate({ scrollTop: 0 }, 'fast', function(){ 
     $ajax.animate({ height: 300 }, 'slow', function(){ 
      $('<div></div>').hide().prependTo($ajax).fadeIn('normal'); 
      // you can refer to $ajax here! --^^^^^ 
     }); 
    }); 
    e.preventDefault(); 
}); 
2

당신이 그럼 당신이

$('#myTag').bind(... 

처럼 액세스 할 수 있습니다이

<a id="myTag" href=""></a> 

처럼 앵커 태그에 ID를 추가 할 페이지 당 한 번만 ID를 사용해야합니다 (모든 ID는 고유 한 것이지 페이지 당 ID가 1 개만있을 수 있음을 의미하지는 않습니다).

다음은 var 키워드를 사용하지 않는 일반

관련 문제