JQuery .load()无法正确加载

时间:2012-03-24 01:46:17

标签: jquery

虽然我通过现有线程搜索了我的问题但我还没有找到解决方案。我有一个显示报告的页面。它的HTML看起来像这样:

<div class="reports-body" report-id="4">
    <!--Some HTML-->
    <div class="comments-title">
        <h3>3 Comments</h3>
    </div>
    <div class="comments">
        <!--The Comments-->
    </div>
</div>
<div class="reports-body" report-id="5">
    <!--Some HTML-->
    <div class="comments-title">
        <h3>3 Comments</h3>
    </div>
    <div class="comments">
        <!--The Comments-->
    </div>
</div>
<div class="reports-body" report-id="6">
    <!--Some HTML-->
    <div class="comments-title">
        <h3>3 Comments</h3>
    </div>
    <div class="comments">
        <!--The Comments-->
    </div>
</div>
etc...

每个reports-body都有一个评论框,用户可以在其中为此特定报告撰写评论。现在我想在用户提交评论后每次重新加载reports-body。我想重新加载整个 reports-body 的原因是, comments-title 中的数字也需要刷新,因为数字会增加。

Unfortunatley我的代码并没有真正起作用.~~我的技能不足以看到问题,这就是我向你寻求帮助的原因。这是jquery代码:

// defined earlier
var parent = $(this).closest('form')
// ...

$.ajax({
    type: 'post',
    dataType: 'json',
    url: webroot + 'reports_comments/add',
    data: data,
    beforeSend: function(XMLHttpRequest) {
        ajaxloader.show();
    },
    success: function(data) {
        if(data.status == 'success') {
            var server = data.server;
            var id = data.id;
            var summoner = data.summoner;
            var url = webroot + '/summoner/' + server + '/' + id + '-' + summoner;
            var rb = parent.parents('.reports-body');

            rb.load(url + ' .reports-body[report-id=' + rb.attr("report-id"));
        } else {
            parent.find('#ReportsCommentContent').css("border", "2px solid #BB1A11");
        }
    },
    error: function(request) {
        alert("Request Error.");
    },
    complete: function() {
        ajaxloader.hide();
    }
});

提交评论后,reports-body消失而不是重新加载。我希望你能帮助我。

1 个答案:

答案 0 :(得分:1)

您忘记了被叫网址中的括号。

rb.load(url + ' .reports-body[report-id=' + rb.attr("report-id"));

rb.load(url + ' .reports-body[report-id=' + rb.attr("report-id")+']');