Si asigno href
un elemento a javascript:void(0);
(en lugar de #
), así:
$('#foobar').attr("href", "javascript:void(0);");
JSHint recoge la construcción javascript:void(0);
como una URL de secuencia de comandos:
PS C:\Users\hal9000\Development\strugee.github.com> grunt lint
Running "jshint:all" (jshint) task
js\main.js
30 | $('#lightbulb-icon').attr("href", "javascript:void(0);");
^ Script URL.
>> 1 error in 4 files
cuando en realidad no está haciendo nada y es semánticamente válido. Debería haber una excepción para estos tipos de URL de secuencia de comandos.
¿Quizás esto debería ser una advertencia especializada? No puedo ser el único confundido por esto.
Tu no eres.
Simplemente coloque esta línea en la parte superior de su archivo para deshabilitar la advertencia:
/*jshint scripturl:true*/
Pero la mejor manera es usar "#" en el href y devolver "falso" para todos los eventos de JavaScript:
<a href="#" onclick="doSomething();return false;">my link</a>
No, la mejor manera es mantener su JavaScript fuera de su marcado y atributos: P
@rwaldron : rectificación, de hecho
$('#foobar').attr("href", "#").click(function() {
// do it
});
Pasa jslint:
$('#foobar').attr('href','javascript'+String.fromCharCode(58)+'void(0);');
@MikeGodin parece un error aparte.
@kcampion poner # y devolver falso no siempre es desirebale
en mi caso no quiero que aparezca hash
Comentario más útil
Simplemente coloque esta línea en la parte superior de su archivo para deshabilitar la advertencia:
Pero la mejor manera es usar "#" en el href y devolver "falso" para todos los eventos de JavaScript: