2012-12-24 2 views
5

내가이 jQuery를 기능이 같은 JQuery와 함수를 호출 :어떻게 자바 스크립트

$('.scrollToLoginBox').click(function(){ 
    $('html, body').animate({scrollTop: $("#LoginBox").offset().top-5}, 'slow');     
}); 

I 클래스로하지 않으을,이처럼 호출 할 수 싶습니다 onClick="scrollTo(id);"

그래서

, 나는의 기능을 넣을 수있는 방법을 자바 스크립트 형식 :

function scrollTo(id){ 
    $('html, body').animate({scrollTop: $("#'+id+'").offset().top-5}, 'slow'); 
} 

출판사에 의해 편집 :

나는 너희들을 미워하지 않는다; o) 나는 당신의 모든 대답에 감사하지만, 나는 이드를 얻으 려하지 않고있다. 반면에, 나는 위에 게시 한 동일한 기능을 구축하려고합니다. 즉, 클릭하면 ID (예 : 로그인 또는 LoginBox)를 보내어 함수가 앵커 (id = Login 또는 LoginBox)로 천천히 스크롤되도록합니다.

는 이제 다음과 같이 호출해야합니다 : 클래스 = "scrollToLoginBox는"대신 나는 그것이 = "scrollTo ('LoginBox') onclick을 호출하고 싶습니다, 나는 위처럼 (20 개)와 동일한 기능을 가지고

, 각 id에 대한 하나. 내가 갖고 싶지 않은 또 다른 예제는 다음과 같습니다. class = "scrollToSettings"대신에 onClick = "scrollTo ('LoginBox'); 또는 onclick을 = "scrollTo ('설정'); 내가 ID를 취 하나의 기능을 싶습니다

  $('.scrollToSettings').click(function(e){ 
     $('html, body').animate({scrollTop:$("#settings").offset().top-5}, 'slow');   
     return false;  
    }); 

    $('.scrollToFaqs').click(function(e){ 
     $('html, body').animate({scrollTop:$("#formCode").offset().top-5}, 'slow');   
     return false;  
    }); 

난 그냥이 jQuery를 함수에 ID를 전달하는 방법을 알고하지 않습니다. O)

+2

가 왜 onclick''으로 호출 할 수 있습니까? 그 이벤트 핸들러를 좀 더 일반적인 것으로 만드십시오. – Blender

+3

... 왜? 왜 우리를 그렇게 싫어하니? –

+0

나는 당신을 미워하지 않는다; o) 나는 모든 대답에 감사하지만, 나는 이드를 얻으 려하지 않고있다. 반면에 저는 함수를 만들려고합니다. – Sebastian

답변

8
당신이 클릭 된 항목에 대한 ID를 전달하려는 경우

는, 당신은 this.id

Live Demo

onClick="scrollTo(this.id);" 

I를 사용할 필요가 당신은 some other control의 ID를 전달하기를 원한다. 그러면 간단하게 id를 문자열로 전달한다.

onClick="scrollTo('idOfHTMLElement');" 

편집 자바 스크립트 함수 HTML 요소의 값을 전달하는, 코멘트에 기초.

데이터 속성은 홀드 사용자 지정 특성에 대한 사용 및 jQuery를 기능을 사용 data() 기능에 액세스 수 있습니다.

HTML을

<div class="scrollToCal" data-idtopass="Anchor">click me to go to Anchor</div>​ 

자바 스크립트

jQuery(document).ready(function($) { 

    $('.scrollToCal').click(function() { 

     $('html, body').animate({ 
      scrollTop: $('#' + $(this).data('idtopass')).offset().top - 5 
     }, 'slow'); 
     return false; 
    }); 

});​ 
+0

감사합니다 Adil, 나는 이것을 원하지만 내가 출판 한 jQuery 함수를 원한다. 나 이미 이드가있어. 필자의 예에서는 scrollTo ('Login'); 그렇다면이 기능을 사용하는 방법을 수정하려면 어떻게해야합니까? – Sebastian

+0

바이올린을 만들 수 있습니까? 네가 원하는 것을 얻을 수 없었기 때문이다. – Adil

+0

안녕하세요, Adil, 나는 Palash 코드를 사용하여 id 부분을 제거하기 시작했습니다. 나는 알았지 만 경고조차도 작동하지 않는다. 나는 noConflict 모드에있다. [this in my fiddle] (http://jsfiddle.net/sebababi/pGxP8/) – Sebastian