2016-06-03 8 views
0
<a href="#" class="submit-form show-field" data-show-field="#Product" >View products</a> 

Dieser Link dynamisch den dom hinzugefügt wird, und ich Feuer eine jQuery-Funktion auf Klickprevent arbeitet nicht für dynamischen Link

$('body').on("click", 'a.show-field', function(e) { 
    if (!$(this).attr('data-show-field')) { 
     return; 
    } 
    $($(this).attr('data-show-field')).parent().show(); 
    e.preventDefault();  
}); 

das Ereignis ausgelöst werden gut, aber Seite umleitet. Ich kann nicht verstehen, was ich falsch gemacht habe

+2

Make 'e.preventDefault()' als erste Zeile Ihrer Funktion als 'return' wird ausgeführt' e.preventDefault nicht() ' – Rayon

+0

Sie einen Fehler erhalten Sie in der Konsole? – vaso123

+2

Ihr Link geht zu '#', was bedeutet, dass wenn eine Aktion ausgeführt wird, diese von einem angehängten Event-Handler gehandhabt wird. Aus diesem Grund wird 'e.preventDefault()' in diesem Szenario nichts tun. Sie müssen diesen anderen angehängten Event-Handler finden und ihn ändern oder entfernen. –

Antwort

0

Sie Ereignis wird ausgelöst, bevor Sie es verhindern können.

$('body').on("click", 'a.show-field', function(e) { 

    e.preventDefault(); 

    if (!$(this).attr('data-show-field')) { 
     return; 
    } 
    $($(this).attr('data-show-field')).parent().show(); 
    /*e.preventDefault(); */ 
}); 
0

Wenn die Seite umleitet dann denke ich, dass Ihr Hörer nicht gut funktioniert. Hier sind Sie ein Plünderer mit einem Anwendungsfall. With and whithout document ready

Ich weiß nicht, wo Sie Ihren Code, aber wenn es außerhalb der "Dokument bereit" ist, dass Hörer niemals ausgelöst wird.

$('body').on("click", 'a.show-field', function(e) { 
    alert("First attemp is attached"); 
}); 

$(document).ready(function() { 
    $('body').on("click", 'a.show-field', function(e) { 
    alert("Second attemp is attached"); 

    if (!$(this).attr('data-show-field')) { 
     return; 
    } 

    $($(this).attr('data-show-field')).parent().show(); 
    e.preventDefault(); 
    }); 
}); 

PD: sorry für mein Englisch

Verwandte Themen