2016-04-29 57 views
0

如何使输入type="button"jquery函数.click()工作在 Internet Explorer和Safari?它在Mozilla,Chrome和Opera中运行良好。 例,德恩按钮被点击隐藏的div被显示:Jquery:输入类型=“按钮”与.click()函数不工作在Internet Explorer和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

您可以粘贴生成的HTML代替php代码吗? – Flunch

回答

0

最有可能您的JS加载和你的HTML呈现前执行。 你可以附上你的JS在documentReady事件(和关闭的onclick括号):

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

这应该满足你的目的:

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

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

我的补充是:

使用data()的JQuery功能代替

等待文件准备就绪

防止默认行为

+0

如果我使用'data()'而不是'attr()',那么它在所有浏览器中都不起作用。 '<脚本类型= “文本/ JavaScript的”> $(文件)。就绪(函数(){ $( “CommentsSection”。)点击(功能(EV){ ev.preventDefault(); (sectionname)=(this).data('data-id'); var sectionID = ' – Darius92

相关问题