Во втором примере вы вызываете getCheckedVal
и затем передаете возвращаемое значение в bind
.Вам не нужны эти ()
после getCheckedVal
:
window.onload = function(){
var radio = $('#education_number input:radio');
for(var i=0; i<radio.length; i++){
$(radio[i]).bind('blur', getCheckedVal);
}
}
(заметьте, я добавил $(...)
вокруг radio[i]
, потому что radio[i]
является необработанным элементом DOM, а не объектом jQuery.)
Но вы можете значительно упростить этот код:
window.onload = function(){
$('#education_number input:radio').blur(getCheckedVal);
}
jQuery основан на множествах.Вы можете работать со всем подобранным набором элементов, вместо того, чтобы циклически проходить через набор самостоятельно.
Однако следует учитывать две вещи:
- У вас действительно только хотите эту информацию на размытиеНапример, не на
change
? - Вы действительно хотите подождать, пока событие
window#load
не подключит ваши обработчики событий?Это на очень опоздание в процессе загрузки страницы, после того как все ваши изображения и так далее закончили загрузка.Вместо того, чтобы использовать window#load
, рассмотрите возможность размещения вашего скрипта в конце, непосредственно перед закрывающим тегом </body>
, или использования функции ready
в jQuery .