2012-06-29 2 views

ответ

1

вы не должны обернуть input элементов с помощью label элемента, попробуйте следующее:

<label for="average-data" class="section-view-time-checkbox"> 
    <span class="custom checkbox checked"></span> Average 
</label> 
<input type="checkbox" id="average-data" style="display: none;"> 

http://jsfiddle.net/zpZtH/7/

+0

Просто избавился от всего этого. На самом деле это не нужно, поскольку я не представляю формы. Только использование CSS стилей. – Pwnna

+0

@ultimatebuster Удачи :) – undefined

0

http://jsfiddle.net/Cc55g/

Вы должны вызвать event.preventDefault() в обработчике щелчка. Это предотвратит выполнение действия по умолчанию по умолчанию после запуска пользовательской функции. Второе предупреждение происходит, поскольку форма отправляется.

+0

Почему вы отправляете эту форму? Это просто «ярлык»? Кроме того, причина, по которой я не хочу делать 'event.preventDefault()', - это потому, что я также иногда встраиваю ссылки в метку, которая идет на другую страницу. – Pwnna

+0

Я действительно не знаю. Поведение кликов по умолчанию на элементе ввода, по-видимому, изменяет состояние элемента, заставляя его как-то обновляться. Не имеет значения, так как вы знаете, что вы хотите, чтобы сделать это, вы можете избежать других действий; Мне любопытно, но я буду публиковать здесь, если я натолкнулся на хорошее объяснение. – nbrooks

+0

Вы можете связать другой клик-прослушиватель с привязными ссылками и вызвать 'event.stopPropagation()' в этом прослушиватель, чтобы предотвратить запуск клика его родительские элементы. Затем он выполнит свое действие по переадресации по умолчанию/changehash и ничего больше – nbrooks

0

Это общая ошибка в JavaScript. вы можете найти много статей в Интернете специально для SO, чтобы событие было выпущено дважды. Вы можете попробовать что-то вроде этого

$(document).on('click', '#task-list li', function(e) 
{ 
     alert('Hellow world'); 
     e.stopPropagation(); 
     return false; 
}); 

И это, безусловно, проблема Javascript, потому что если вы попали Google и поиск огня событий дважды вы увидите, что Угловое, Jquery и позвоночник и т.д. все они где-то стрельба события дважды или даже трижды , Итак, кажется, что за этим стоит javascript. И, конечно, если вы будете искать это с помощью Mozilla Developers Network, вы можете увидеть, что эксперты так же сказали это.

Смежные вопросы