2017-02-17 154 views
0

我有一個很長的輸入列表,附帶一個點擊功能。這使我回到頁面頂部每次我點擊它jquery跳轉到頂部.click

$(document).on('click', 'input', function() { 
var name = $(this).attr("name"); 
if ($('input[name="' + name + '"]:eq(1)')[0].checked) { 
    $('label[name="' + name + '"]:eq(1)').addClass('nostate'); 
    $('label[name="' + name + '"]').removeClass('selected'); 
} 
else { 
    $('label[name="' + name + '"]').removeClass('nostate selected'); 
    if ($('input[name="' + name + '"]:eq(0)')[0].checked) { 
     $('label[name="' + name + '"]:eq(0)').addClass('selected'); 
    } 
    else { 
     $('label[name="' + name + '"]:eq(2)').addClass('selected'); 
    } 
} 

}); 

我已經試過

function (e) { 
e.preventDefault(); 
} 

return false; 

但他們沒有工作,我承擔這是因爲有input的整個頁面都在運行。

注:

我之所以把它聽完整個文檔,是因爲我有一個附加額外的輸入第二個查詢和我的點擊監聽器,當我點擊了追加投入將正常工作。我認爲這是因爲點擊監聽器在頁面加載時綁定到input's

此外,點擊上沒有href=""

+0

網址是否改變?像在散列符號後附加一些東西? http://www.example.com/url#something/wrong-here – motanelu

+0

@motanelu絕對不是。我的意思是不要在那一點上添加我現在編輯的問題。 – denski

+0

請發佈[mcve],以便我們可以看到問題 – j08691

回答

0

在刪除了儘可能多的代碼以創建最小/合併/可驗證的示例並通過CSS後,我發現它是由位置隱藏單選按鈕引起的。

input[name^="state"][type="radio"] { 
    position: absolute; 
    top: -9999px; 
    left: -9999px; 
} 

我改成了

input[name^="state"][type="radio"] { 
    display:none; 
    //position: absolute; 
    //top: -9999px; 
    //left: -9999px; 
} 

,這並獲得成功。