Как получить проп ('проверено') это внутри именованной функции change()
Итак, я проверяю, проверено ли значение свойства true или false. код ниже прекрасно работает:
var $artistip = null;
var $chkbx = $('input[name="artist"]');
$chkbx.change( function(){
var $checked = $(this).prop('checked');
if($checked) {
$artistip = $(this).val();
}else {
$artistip = null;
}
});
Я хочу превратить весь этот код в именованную функцию, например:
$djchkbx.change( function() {
getCheckBoxValue($djchkbx,$djtip);});
var $djtip = null;
var $djchkbx = $('input[name="dj"]');
function getCheckBoxValue(thisckbox, $uniqueVariable){
var $checked = $djchkbx.prop('checked');
console.log($checked);
if($checked) {
$uniqueVariable = $(this).val();
console.log('Checked');
console.log($uniqueVariable);
}else {
$uniqueVariable = null;
console.log('Un Checked');
console.log($uniqueVariable);
}
}
Проблема в том, что я продолжаю становиться ложным.
Оригинальный код работает как шарм. Созданная мной именованная функция не работает должным образом, просто возвращает false.
Я буду использовать код много, так как у меня есть несколько флажков ввода для проверки. Так что я действительно хочу сделать функцию многократного использования, которая делает то же самое, что и мой оригинальный код.
1 ответ
Сначала очистите ваш код. Переместить все var
объявления наверх. Затем удалите параметры функции getCheckBoxValue
- вы все равно не используете их или, по крайней мере, не разумно. В вашем change
Обработчик вызывает вашу именованную функцию следующим образом:
getCheckBoxValue.call(this);
Сюда, this
в вашей названной функции будет то же самое this
как в вашем обработчике событий.
В вашей именованной функции вы можете получить доступ к элементу checkbox, как в вашем фрагменте кода: $(this)
приписывать $(this).val()
или же null
прямо к $djtip
- присвоение параметру функции не имеет никакого смысла. Если вы не можете напрямую назначить $djtip
Поскольку именованная функция используется в разных контекстах, верните значение и выполните присваивание в функции-обработчике анонимного события.