2017-02-17 4 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, поскольку страница загружается

Кроме того, на клике нет href="".

+0

Является ли изменение URL? Как будто что-то приложилось к нему после знака хэша? 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; 
} 

и это сделал трюк.