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

這似乎並沒有工作,雖然JavaScript變量STR有「a.tab_1」的值。上面的jQuery函數根本不運行。

回答

4

還有就是這是一個更容易的辦法,不要求所有的擺弄HTML屬性:

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() 
     ; 
    }); 
}); 

See demonstration here.

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>