Помощь с поведением флажка модульного тестирования. У меня есть эта страница:
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(function() {
$('<div><input type="checkbox" name="makeHidden" id="makeHidden" checked="checked" />Make Hidden</div>').appendTo('body');
$('<div id="displayer" style="display:none;">Was Hidden</div>').appendTo('body');
$('#makeHidden').click(function() {
var isChecked = $(this).is(':checked');
if (isChecked) {
$('#displayer').hide();
}
else {
$('#displayer').show();
}
return false;
});
});
</script>
</head>
<body>
</body>
</html>
Это не работает, это из-за return false;
в обработчике кликов. Если я удаляю его, он прекрасно работает. Проблема в том, что если я вытащу функцию щелчка в ее собственную функцию и протестирую ее с помощью qunit, она не будет работать без return false;
[EDIT]
Используя ответ @ patrick, мои результаты:
Firefox:
- Ручная проверка игрушки - хорошо.
- Модульные тесты - хорошо.
- Ручная проверка производственного приложения - хорошо.
Internet Explorer:
- Ручная проверка игрушки - ошибка.
- Модульные тесты - хорошо.
- Ручная проверка производственного приложения - ошибка.
Internet Explorer требует изначально, одним щелчком мыши. после этого требуется два клика.
Я думал, что jQuery - это абстрагирование браузеров?
Должен ли я переопределить все поведение флажка для решения?
В моих модульных тестах я выполняю симуляцию флажка пользователя:
$(':input[name=shipToNotActive]').removeAttr('checked');
$('#shipToNotActive').change();
а также:
$(':input[name=shipToNotActive]').attr('checked', 'checked');
$('#shipToNotActive').change();