JQuery пост и добавить данные внутри нажал div? - PullRequest
1 голос
/ 22 сентября 2010

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

Активируемый 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>

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

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

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

Ответы [ 2 ]

2 голосов
/ 22 сентября 2010

Вы можете сохранить ссылку на <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 голос
/ 22 сентября 2010

Я сохранил ссылку на 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);
  });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...