Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用AJAX时,Jquery单击功能不起作用_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 使用AJAX时,Jquery单击功能不起作用

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

这是我的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 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()的示例