2012-01-07 5 views
1

html의 onclick에서 javascript 변수에 함수가 트리거되는 값이 할당되어야하는 코드를 작성했습니다. html의 onclick을 사용하여 변수를 할당하는 방법은 무엇입니까?

<script type="text/javascript"> 
function set_str(numb) 
{ 
    if(numb == 1) 
    var str_in_func = 'a.tab_1'; 
    else if(numb == 2) 
     var str_in_func = 'a.tab_2'; 
    return str_in_func; 
} 
jQuery(window).bind("load", function() { 
str = set_str(num); 

// When a link is clicked 
$(str).click(function() { 


// switch all tabs off 
$(".active").removeClass("active"); 

// switch this tab on 
$(this).addClass("active"); 

// slide all content up 
$(".content").slideUp(); 

// slide this content up 
var content_show = $(this).attr("title"); 
$("#"+content_show).slideDown(); 

}); 

}); 
</script> 

나는 아래 링크이 그래도 작동하지 않는 것

<a href="#" title="content_1" onclick="var num = 1; return false;" class="tab_1 active" id="ma_link">Topics</a> 

을 클릭하면 자바 스크립트 변수 STR이 'a.tab_1'의 값을 갖고 싶어. 위의 jQuery 함수는 전혀 실행되지 않습니다.

HTML :

<nav> 
    <a href="javascript:;" class="tab">tab 1</a> 
    <a href="javascript:;" class="tab">tab 2</a> 
</nav> 
<div id="content"> 
    <section>Content 1</section> 
    <section>Content 2</section> 
</div> 

JS

$(document).ready(function() { 
    $('.tab').on('click', function() { 
     $('.active').removeClass('active'); 
     $(this).addClass("active"); 
     $('#content section') 
      .slideUp() 
      .eq($(this).index()).slideDown() 
     ; 
    }); 
}); 

모든 HTML 속성에 대한 일 처리를 필요로하지 않는다 이것에 훨씬 쉽게 접근이있다

답변

0
<a href="#" title="content_1" onclick="var num = 1; return false;" class="tab_1 active" id="ma_link">Topics</a> 

문제는 변수 이름 앞에 var입니다. 그것을 제거하면 괜찮을 것입니다. var은 현재 컨텍스트 외부에서 사용할 수 없도록 창 컨텍스트가 아닌 로컬 범위에 대한 변수를 선언한다는 것을 javascript에 알립니다.

당신이 원하는 :

<a href="#" title="content_1" onclick="num = 1; return false;" class="tab_1 active" id="ma_link">Topics</a> 
관련 문제