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