Я хочу очистить поле ввода при его нажатии, но только при первом нажатии. С JQuery, вы можете достичь это следующим образом: положить следующий фрагмент кода в любом месте документа (предполагая, что элемент с идентификатором = inputf
уже загружен):Как применить функцию jQuery .one() к элементу через атрибут 'onclick'
$('#inputf').one("click", function() {
$(this).val("");
});
Как вы можете видеть в приведенном выше фрагменте кода, ввод поле должно иметь атрибут id
со значением inputf
.
Но есть способ, чтобы переместить этот фрагмент в атрибуте поля ввода onclick
, как
<input type="text" onclick="$(this)....val('')" />
? Похоже, что я не могу использовать функцию .one()
, потому что этой функции требуется строка, содержащая один или несколько типов событий JavaScript. Но я просто хочу, чтобы .one()
выполнялся каждый раз, когда он вызывается, без указания одного или нескольких типов событий.
Использование кода JavaScript внутри ваши HTML-теги все равно не рекомендуется, потому что всегда полезно полностью разделить ваш сценарий (и стили), где его легко найти. Но нет, вы не можете использовать '.one' таким образом, потому что это метод jQuery, а не событие JavaScript. Не похоже, что вы даже можете использовать '.off' для удаления обработчика onclick, поскольку это удаляет только события, которые были добавлены с помощью' .on'. – Blazemonger
Возможно, если вы сказали нам, что вы в конечном итоге пытались выполнить, мы могли бы помочь вам найти правильный метод для использования ... – ShaneBlake
Вы делаете это предпочтительным/правильным/самым простым/умным способом в первом примере. Не переходите к смешанной разметке/логике. Каковы бы ни были причины, по которым вы пытаетесь это сделать, будут перевешиваться позитивами сохранения кода. – Stephen