2010-09-21 1 views
1

Я пытаюсь написать функцию, которая будет отправлять данные (и добавлять результаты в div), когда вы нажимаете на div. У меня есть это, поэтому он будет предупреждать данные, но по какой-то причине я не могу заставить его добавить данные обратно в щелчок div?jquery post и добавить данные внутри щелкнули div?

щелчки ДИВ:

<div class="qaContainer"> 
    <h2>testing title</h2> 
    <input type="hidden" name="catid" id="catid[]" class="catid" value="3"> 
</div> 

И JQuery:

jQuery(".qaContainer").click(function() { 
    var cat_id = jQuery(this).find(".catid").val(); 
    if (cat_id) { 
    jQuery.post("/index.php?option=com_qa&view=questions&catid=2&Itemid=33", { catid: cat_id }, function(data) { 
    jQuery(this).append(data); 
    }); 
}; 

Данные, которые он вернул:

<div class="info"> 
    <div class="question">testing 1</div> 
    <div class="answer">testing 2</div> 
</div> 

Теперь я хочу, возвращаемые данные, чтобы сидеть внутри qaContainer div, после скрытого ввода, поэтому я пытаюсь использовать append, но он не работает. Я получаю эту ошибку в FF:

Error: b.createDocumentFragment is not a function 
Source File: jquery-1.4.2.min.js 
Line: 20 

Если кто-то может помочь, что было бы здорово :)

ответ

2

Вы можете сохранить ссылку на <div> вы щелкнули, как это:

jQuery(".qaContainer").click(function() { 
    var div = jQuery(this), 
     cat_id = div.find(".catid").val(); 
    if (cat_id) { 
    jQuery.post("/index.php?option=com_qa&view=questions&catid=2&Itemid=33", { catid: cat_id }, function(data) { 
     div.append(data); 
    }); 
    } 
}); 

В качестве примечания стороны вы хотели бы передать catid в запросе (как константу) и в данных POST?

1

Я сохранил ссылку на this в that, чтобы узнать, не имеет значения. Хотя, я не думаю, что post() переопределяет this. В любом случае, сделайте снимок:

jQuery(".qaContainer").click(function() { 
    var cat_id = jQuery(this).find(".catid").val(); 
    var that = this; 
    if (cat_id) { 
    jQuery.post("/index.php?option=com_qa&view=questions&catid=2&Itemid=33", { catid: cat_id }, function(data) { 
    jQuery(that).append(data); 
    }); 
};