【问题标题】:element (button) was gotten ajax response not work?元素(按钮)得到ajax响应不起作用?
【发布时间】:2012-05-30 01:10:30
【问题描述】:

我有一个网站可以更新状态和评论 我必须从数据库中列出我所有的状态和评论查询 并且在我使用 html 代码(如状态)之前插入更新表单时,我有要更新的表单,评论按钮不起作用 我的代码是 首先是ajax请求的返回字符串

            echo '
    <div class="stbody">
        <div class="stimg">
            <img width="40" height="40" src="/images/uploads/.' . $json_data["picture"] .'">
       </div>
        <div class="sttext">' .
         "  AAAAAAA" .
        '</div>
        <a href="#" class="delete" style="display: none; "> Remove</a>

        <a href="#"id ="comment_link">Comment</a>
        <span class="icodot"> 5 comment</span>
        <span class="likelink"><a  href="" isliked="0">Like</a> 10 liked</span>
        <div id="box_comment" class="bxcomment">
            <form>
                <div id="status' . $model->status_id . '" class="rowcomment" >
                    <div class="rowcommentlt">
                        <a>
                            <img width="40" height="40" src="http://3.1.s50.avatar.zdn.vn/avatar_files/3/c/d/8/giaosudau_50_3.jpg">
                        </a>                                        
                        <textarea class ="text_area"  id="txtComment' . $model->status_id . '"></textarea>
                        <br>
                    </div> 
                    <div class="bxcmtend">
                        <span class="tipcmtend">Nhấn Shift + Enter để xuống dòng</span>
                        <span class="btncmtend">
                            <a class="comment_submit" href="#" 
                            onclick="return false;" id="' . $model->status_id . '"><em>Comment</em></a>             
                            <a onclick="return false;" rel="for_3073657831" id="emofeed_3073657831" class="emofeed" href="#" tabindex="0"></a>
                        </span>
                    </div>
                </div>
            </form>

        </div>
    </div> 

';

在接收中,我有脚本来处理更新状态和更新评论 首先是处理评论

$(".comment_submit").click(function(){
    var element = $(this);
    var status_id = element.attr("id");
    var comment = $("#txtComment"+status_id).val();
    var dataString = 'comment='+ comment + '&status_id=' + status_id;
    if(comment=='')
    {
        alert("Please Enter Some Text");
    }
    else
    {

        $("#flash"+status_id).show();
        $("#flash"+status_id).fadeIn(400).html('<img src="ajax-loader.gif" align="absmiddle"> loading.....');
        $.ajax({
            type: "POST",
            url: "insertajax.php",
            data: dataString,
            cache: false,
            success: function(html){
                $("#loadplace"+Id).append(html);
                $("#flash"+Id).hide();
            }
        });
    }
    return false;
});

其次是句柄更新状态

success: function(data){

                $(data).prependTo(".timeline").slideDown("slow");                                
                $(".loading").hide();
                $(".input_box").val("So what's on your mind?").css("color","#808080")
                .css("height","30px");
            }

当我收到 html 代码正常但我点击评论时它不起作用。

感谢提前。 我应该如何响应客户端 json 并在客户端中插入 html 代码?

【问题讨论】:

  • 在comment_submit(html a 元素)中有一个内联事件处理程序“onclick”。这优先于 jquery 绑定的“点击”。删除内联 onclick 处理程序以整理内容,它有助于消除未知问题。
  • 我可以看看控制器处理这个吗?

标签: php ajax yii


【解决方案1】:

我问过一个人,我的问题是处理所有页面中的事件,你应该使用 .on() 或 live() 在这种情况下,我从 $(".comment_submit").click(function(){ 更改为 $(document).on('click', '.comment_submit', function(){

并且它有效。 谢谢大家

【讨论】:

    【解决方案2】:

    你是说响应永远不起作用吗?在

    $("#loadplace"+Id).append(html); 
    $("#flash"+Id).hide(); 
    

    “ID”未定义。这意味着响应将永远不会显示。您可能是指 status_id?

    【讨论】:

    • 但是当我没有在文本区域输入任何字符时我不工作 alert("请输入一些文本");我在这里不是我的问题。感谢您的回答
    猜你喜欢
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 2018-10-13
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多