2012-01-07 10 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> 

これがが動作するようには思えない「a.tab_1」の値を持つようにjavascriptの変数strのが欲しいです。上記の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> 
関連する問題