У меня есть две отдельные функции на одной странице моего сайта, обе из которых вызывают одну и ту же функцию Ajax. 2 функции должны быть различимы. Моим решением было передать строку (например, ) здесь) в одной из функций, например, в следующем упрощенном примере.Просто интересно, неужели это плохо? Практика кодирования JS
<script type="text/javascript">
function AjaxFunction(string) {
if (string === 'String') {
alert('You have clicked Button2');
} else {
alert('You have clicked Button1');
}
}
</script>
<button type="button" id="Button1" onclick="AjaxFunction()">Click1</button>
<button type="button" id="Button2" onclick="AjaxFunction('String')">Click2</button>
Это кажется мне совершенно прекрасным. Единственная проблема заключается в том, что строка имеет значение null при нажатии кнопки Button1. Я думаю, что с этим нет никаких проблем, так как if ... else заботится о любой двусмысленности того, что делать с string. Я тестировал свою фактическую функцию Ajax, и все работает нормально, но поскольку я все еще немного новичок в кодировании, я всегда думаю, что глупые ошибки, о которых я не знаю, будут уничтожать сайт. Извините за тривиальный вопрос, но я пропускаю какие-либо проблемы с производительностью, ошибки и т. Д. С помощью этого подхода? Спасибо за любую помощь!
Вы просите мнения, поэтому я укажу, что встроенный код JavaScript и старый код «onfoo» обработчика событий считаются плохой практикой кодирования. – Pointy
Только проблема, я вижу, использует встроенные события. Большинство разработчиков используют атрибут данных или класс для элемента и имеют функцию проверки. – epascarello
@epascarello хорошо, если он действительно пытается отличить одну кнопку от другой, было бы лучше передать 'this', чтобы функция получала фактический узел DOM. (По-моему.) – Pointy