2012-01-07 2 views
1

Я пишу код, где onclick html должен приводить к тому, что переменной javascript присваивается значение, которое вызывает функцию для запуска.Как назначить переменную с помощью onclick html?

<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> 

Я хочу Javascript переменной ул иметь значение «a.tab_1», когда по ссылке ниже щелкают

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

Это не похоже на работу, хотя. Вышеупомянутая функция 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> 
Смежные вопросы