'#' вернет пользователя в начало страницы, поэтому я обычно использую void(0)
.
Три причины. Поощрение использования # amoungst команды разработчиков неизбежно приводит к тому, что некоторые используют возвращаемое значение функции, называемой так:
function doSomething() {
//some code
return false;
}
Но тогда они забывают использовать return doSomething()
в onclick
и просто используют doSomething()
.
Вторая причина, по которой следует избегать #, заключается в том, что последнее возвращение false не будет выполняться, если вызванная функция выдает ошибку. Следовательно, разработчики также должны помнить, чтобы обрабатывать любую ошибку соответствующим образом в вызываемой функции.
Третья причина заключается в том, что в некоторых случаях свойство события onclick назначается динамически. Я предпочитаю иметь возможность вызывать функцию или назначать ее динамически, без необходимости кодировать функцию специально для того или иного метода вложения. Следовательно, мой onclick (или что-нибудь еще) в HTML-разметке выглядит так:
onclick="someFunc.call(this)"
OR
onclick="someFunc.apply(this, arguments)"
Использование javascript:void(0)
позволяет избежать всех вышеперечисленных головных болей, и я не нашел примеров недостатков.
Так что если вы одинокий разработчик, вы можете сделать свой собственный выбор, но если вы работаете в команде, вы должны указать:
use href="#"
, убедитесь, что onclick
всегда содержит return false;
в конце, что любая вызываемая функция не выдает ошибку, и если вы динамически присоединяете функцию к свойству onclick, убедитесь, что, а также не выбрасываете ошибка возвращает ложь.
OR
use href="javascript:void(0)"
Со вторым легче общаться.