Forum.clique () evento.preventDefault() não funciona

estou a construir uma aplicação web que pode ser extendida ao largar scripts num directório predefinido. O script precisa ler os cabeçalhos dos arquivos antes de ir para uma página, então eu preciso usar .preventDefault() when links are clicked and run some JScript first. Infelizmente, não consigo passar .preventDefault ()

aqui está o meu formato de ligação:

<a href="path/to/file.php" class="filelink">Some Text</a>
Aqui está o jquery que estou a tentar usar para parar a acção por omissão.
    $( '.filelink' ).click( function( e ) {
        e.preventDefault();
        //do some other stuff here
    });

editar:

Mais Informações:

O {[2] } está dentro o meu pé. Esta função está dentro $(document).ready Depois de uma chamada $.ajax que constrói a lista de ligações esta função está a tentar ouvir os cliques de.

Author: KingRichard, 2015-01-10

4 answers

Uma vez que as suas ligações são anexadas dinamicamente à página, você precisa usar document.on() para capturar os eventos click.

A sintaxe para adicionar os ouvintes de eventos ao conteúdo dinâmico é a seguinte

$(document).on( event, selector, callback );

Então o teu manipulador de click tornar-se-ia:

$(document).on('click','.filelink',function(e){

 e.preventDefault();

 //code here

 return false;

});
 56
Author: r3wt, 2015-01-09 23:30:06
Acho que falhaste. $(documento).ready ()

Por favor actualize o seu código do seguinte modo:

$(document).ready(function(){
     $( '.filelink' ).click( function( e ) {
        e.preventDefault();
        //do some other stuff here
    });

})
 3
Author: Mouhamad Kawas, 2015-01-09 23:22:13

O seu código está rodeado por:

$(function(){

//your code here

});

? ou

$(document).ready(function(){

//your code here

});

? , porque você deve esperar até que o elemento <a></a> esteja pronto antes de adicionar o seu ouvinte click a ele. tente o código acima ou coloque o seu código no fundo do html antes da marca </body> ou logo após o elemento <a></a>. isso deve funcionar.

Editar: dado que as suas ligações são adicionadas dinamicamente ligue para a sua função $( '.filelink' ).click() logo após terem sido adicionadas

 1
Author: Santiago Hernández, 2015-01-09 23:31:23
Tive o mesmo problema, porque mudei a janela.localizacao.procurar no meu supervisor de Eventos:
 $( '.filelink' ).click( function( e ) {
        e.preventDefault();
       window.location.search = "something";
 });

Para resolver o meu problema eu usei window.location.hash (que é mais o que eu queria de qualquer maneira).

 0
Author: arthur.sw, 2016-10-01 15:12:05