2013-05-19 53 views
0

我需要調用列表項點擊,但js函數,當事件觸發它調用的時候jQuery函數調用多次需要防止

事件數量JS

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

    //remove previous class and add it to clicked tab 
    items.removeClass('current'); 
    $(this).addClass('current'); 

    $('#v-nav>div.tab-content').hide().eq(items.index($(this))).show(); 

    window.location.hash = $(this).attr('tab'); 
}); 

HTML

<div id="v-nav"> 
       <ul> 

        <li tab="tab1" class=" first CmclTabCss current "> <span class="spn_InerCom"> Commercial Sector </span> <span class="tab1Current spn_Nmbr"> </span></li> 
        <li tab="tab2" class="first DMTabCss"><span class="spn_InerDip">Diplomatic Missions</span><span class="tab1CurrentD spn_Nmbr"></span></li> 
        <li tab="tab3" class="first GovTabCss"><span class="spn_InerGov">Government Sector</span><span class="tab1CurrentG spn_Nmbr"></span></li> 
        <li tab="tab4" class="first WrldTabCss"><span class="spn_InerWld">Outside Kingdom</span><span class="tab1CurrentW spn_Nmbr"> </span></li> 
        <li tab="tab5" class="first ImgTabCss"><span class="spn_InerImg">Images</span><span class="tab1CurrentI spn_Nmbr"> </span></li> 
        <li tab="tab6" class="first"><span class="spn_InerNews">News Archive</span><span class="tab1CurrentN spn_Nmbr"> </span></li> 

        <li tab="tab7" class="first PplTabCss"><span class="spn_InerIndual">Site Users</span><span class="tab1CurrentIndual spn_Nmbr"></span></li> 

       </ul> 
</div> 
+1

「它調用的次數事件編號」應該在這裏工作:http://jsfiddle.net/ JkvWF/ –

+3

我沒有看到爲什麼顯示的代碼會導致每次點擊多次調用點擊處理程序(實際上它不在[測試小提琴]中)(http://jsfiddle.net/dpAeW/))。 。這個問題可能出現在你的_other_代碼中(因爲上面提到了一個未聲明或設置的變量,所以你顯然沒有顯示所有代碼)。 – nnnnnn

回答

1

你的代碼提供的是正確的。看看這裏:jsfiddle

您的代碼必須有其他部分多次觸發click處理程序。

爲了說明這段代碼的問題做工作(省略特定代碼的清晰度):

$('.first').click(function() { 
    $('.first').removeClass('current'); 
    $(this).addClass('current'); 
    window.location.hash = $(this).attr('tab'); 
});