2016-04-29 5 views
0

Wie Eingang type="button" mit jquery Funktion .click() Arbeit in Internet Explorer und Safari machen? Es funktioniert gut in Mozilla, Chrome und Opera. Beispiel, WENN Schaltfläche geklickt versteckte div wird gezeigt:JQuery: input type = "button" mit .click() Funktion arbeitet nicht in Internet Explorer und Safari

<input type="button" value="Comments(<?php echo $commentCounter?>)" data-id="<?php echo $productArray[$key]["ID"].$_SESSION["userSession"];?>" class="CommentsSection"/> 
<div id="<?php echo $productArray[$key]["ID"].$_SESSION["userSession"];?>" style="display:none"> 
<?php 
echo"This is hidden div"; 
?> 
</div> 

JavaScript:

<script type="text/javascript"> 
$(document).ready(function(){ 

$(".CommentsSection").click(function(){ 
    var sectionID=$(this).attr('data-id'); 
$("#"+sectionID).show(); 
}); 
}); 
</script> 
+0

Könnten Sie den generierten HTML-Code anstelle von PHP-Code einfügen? – Flunch

Antwort

0

Wahrscheinlich Ihre JS geladen und ausgeführt, bevor Sie Ihre HTML gerendert wird.

$(document).ready(function() { 
    $(".CommentsSection").click(function(){ 
     var sectionID=$(this).attr('data-id'); 
     $("#"+sectionID).show(); 
    }); 
}); 
0

Dies sollte Ihre Zwecke anpassen: Sie könnten Ihre JS in einem documentReady Ereignis (und schließen Sie Ihre Onclick Klammern) umschließen

$(document).ready(function() { 
    $(".CommentsSection").click(function(ev){ 
     ev.preventDefault(); 

     var sectionID=$(this).data('id'); 
     $("#"+sectionID).show(); 
    }); 
}); 

Meine Ergänzungen:

Verwenden Sie die data() JQuery Funktion statt

Warten auf bereites Dokument

Verhindern Sie das Standardverhalten

+0

Wenn ich 'data()' anstelle von 'attr()' verwende, funktioniert es nicht in allen Browsern. ' ' – Darius92