Javascript 使用AJAX时,Jquery单击功能不起作用
这是我的html代码Javascript 使用AJAX时,Jquery单击功能不起作用,javascript,jquery,ajax,Javascript,Jquery,Ajax,这是我的html代码 <input type="hidden" value="<?php echo $rslt['id'] ?>" id="res_id" /> <!-- this line catch post id --> <div id="likeSec"> <h4><?php echo $rslt['likes'] ?> People Like
<input type="hidden" value="<?php echo $rslt['id'] ?>" id="res_id" /> <!-- this line catch post id -->
<div id="likeSec">
<h4><?php echo $rslt['likes'] ?> People Like this</h4> <!-- this line show total likes -->
<?php
$kol=mysql_query("SELECT * FROM tbl_like_recipe WHERE res_id='".$rslt['id']."' && user_id='".$_SESSION['member_email']."'");
$num_rows = mysql_num_rows($kol); // this query check this user already like this post or not
if($num_rows==0){ // if not liked already show like image
?>
<div id="like" style="float:right;"><img src="images/like.png" width="45" /></div>
<?php
}else{ // if already like show unlike image
?>
<div id="dislike" style="float:right;"><img src="images/unlike.png" width="45" /></div>
<?php } ?>
</div>
人们喜欢这样
您正在DOM中生成动态元素,因此,由于缺少委派,不会附加click事件,为了使其正常工作,请尝试以下操作:
$("#likeSec").delegate('#like', 'click', function(){
var res_id=$("#res_id").val();
$.post("like_recipe_prosses.php",{'data':res_id},function(cbd){
$("#likeSec *").remove();
$("#likeSec").html(cbd)
})
})
$("#likeSec").delegate('#dislike', 'click', function(){
var res_id=$("#res_id").val();
$.post("dislike_recipe_prosses.php",{'data':res_id},function(cbd){
$("#likeSec *").remove();
$("#likeSec").html(cbd)
})
})
您正在DOM中生成动态元素,因此,由于缺少委派,不会附加click事件,为了使其正常工作,请尝试以下操作:
$("#likeSec").delegate('#like', 'click', function(){
var res_id=$("#res_id").val();
$.post("like_recipe_prosses.php",{'data':res_id},function(cbd){
$("#likeSec *").remove();
$("#likeSec").html(cbd)
})
})
$("#likeSec").delegate('#dislike', 'click', function(){
var res_id=$("#res_id").val();
$.post("dislike_recipe_prosses.php",{'data':res_id},function(cbd){
$("#likeSec *").remove();
$("#likeSec").html(cbd)
})
})
试试这个
$('#likeSec').on('click','yourdiv',function(){
//Your Code
});
试试这个
$('#likeSec').on('click','yourdiv',function(){
//Your Code
});
当您收到ajax响应时,您将用新的HTML替换原始HTML元素,其中包含附加了事件的HTML元素。使用.on附加委派事件:
$("#likeSec").on("click", "#like", function(){
var res_id=$("#res_id").val();
$.post("like_recipe_prosses.php",{'data':res_id},function(cbd){
$("#likeSec").html(cbd)
})
})
$("#likeSec").on("click", "#dislike", function(){
var res_id=$("#res_id").val();
$.post("dislike_recipe_prosses.php",{'data':res_id},function(cbd){
$("#likeSec").html(cbd)
})
})
当您收到ajax响应时,您将用新的HTML替换原始HTML元素,其中包含附加了事件的HTML元素。使用.on附加委派事件:
$("#likeSec").on("click", "#like", function(){
var res_id=$("#res_id").val();
$.post("like_recipe_prosses.php",{'data':res_id},function(cbd){
$("#likeSec").html(cbd)
})
})
$("#likeSec").on("click", "#dislike", function(){
var res_id=$("#res_id").val();
$.post("dislike_recipe_prosses.php",{'data':res_id},function(cbd){
$("#likeSec").html(cbd)
})
})
控制台中是否有错误?$(“#likeSec*”).remove()
是否冗余控制台中是否有错误?$(“#likeSec*”).remove()代码>是jquery文档中的冗余项:从jquery 1.7开始,.delegate()已被.on()方法取代。
从jquery文档中:从jquery 1.7开始,.delegate()已被.on()方法取代。
从jquery文档中:从jquery 1.7开始,.delegate()已被.on()取代方法。
来自jquery文档:从jquery 1.7开始,.delegate()已被.on()方法取代。
来自jquery文档:从jquery 1.7开始,.delegate()已被.on()方法取代。
。请参见jquery文档下面带有.on()的示例:从jquery 1.7开始,.delegate()已被.on()方法取代。
。请参见下面带有.on()的示例