Я получил (рабочий) следующий код
$('#selBookable').change(function () {...
А также
<div class="radio radio-search">
<label><input id="radio-new-pop" type="radio" name="radio_newest_popular" value="new" >Neueste</label>
Который выполняется, когда #selBookable получает другое значение.
Теперь я хочу выполнить эту функцию, когда нажата кнопка переключателя в другом месте.
Я старался :
$('#selBookable, #radio-new-pop').change(function () {...
Но это не работает. Теперь я подумал над тем, чтобы дать этому имени .change (function NAMEHERE) имя и выполнить эту функцию, но она тоже не работает. Любая помощь приветствуется.
Редактировать: я пытался использовать событие onchange, но затем у меня нет имени функции для вызова.
3 ответа
Вы можете определить функцию независимо от ее использования, дав ей имя. Затем вы можете прикрепить его к как можно большему количеству целей, сделав вызов такому, который работает (используя имя вместо определения), каждая из которых имеет свою цель.
(Причина, по которой ваша вторая попытка не сработала, заключается в том, что второй аргумент $
является не другой целью, к которой нужно присоединить функцию, а ограничением того, где найти первую цель.)
У вас есть две кнопки радио с одинаковым именем:
<div class="radio radio-search">
<label>
<input id="radio-new-pop" type="radio" name="radio_newest_popular" value="new" />
Neueste
</label>
<label>
<input id="radio-new-pop2" type="radio" name="radio_newest_popular" value="new" />
Other
</label>
</div>
Добавьте функцию javascript для обработки этого изменения:
var onRadioButtonChange = void 0;
{
onRadioButtonChange = function (e) {
theFunctionYouWantToExecute(); // pass this or e.target if needed
return false;
}
}
Прикрепите его к своим элементам:
Array.prototype.forEach.call(
document.querySelectorAll('input[type="radio"]'),
function (element) {
element.addEventListener('change', onRadioButtonChange, false);
}
);
Возможно, попробуйте поместить слушатель jquery в $(document).ready()
.
ИЛИ
Вы можете добавить обработчик click
на радио, например так:
<div class="radio radio-search">
<label>
<input id="radio-new-pop" type="radio" name="radio_newest_popular" value="new" onclick="handleClick(this)">
Neueste</label>
И в JS:
handleClick(myRadio) {
// click function logic
}
Адаптировано из этого ответь.
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.