как использовать AJAX-ссылку в AJAX вернуть ненавязчивый HTML - PullRequest
0 голосов
/ 28 октября 2009

У меня есть страница с URL-адресом ajax, конечно, эта страница применяет ненавязчивый JavaScript, давайте назовем эту страницу A.

<div id="pageA">
    <a href="additem?id=1>Add this item</a>
</div>
<div id="items"></div>

когда я щелкаю эту страницу URL, возвращаю div с URL, который предположительно является ссылкой ajax. возвращение примерно так:

<div class="item">This is 1 item <a href="delete?id=3">Delete this</a><div>

так что финал страницы будет выглядеть так:

<div id="pageA">
    <a href="additem?id=1>Add this item</a>
</div>
<div id="items">
    <div class="item">This is 1 item <a href="delete?id=3">Delete this</a><div>
</div>

тег удаления ссылки из возвращенного HTML предполагается, что он работает так же, как ссылка additem. но я не знаю, как заставить это работать.

есть ли способ сохранить это ненавязчивым?

большое спасибо:)

PS: IM с использованием jquery

Ответы [ 4 ]

1 голос
/ 28 октября 2009

http://plugins.jquery.com/project/livequery/

ради упрощения мы можем просто использовать это. один звонок

$('.item-control').livequery('click', function(event) {
    var addlink = $(this);
    $('#form').ajaxSubmit({ url: addlink.attr('href'), success: function(d) { $("#parrentDIV").empty().append(d); } });
    return false;
});
1 голос
/ 28 октября 2009

В обработчике click для pageA, когда вы вызываете load, дайте ему обратный вызов, который, в свою очередь, использует функцию click для недавно загруженных элементов, чтобы установить их функциональность Ajax.

1 голос
/ 28 октября 2009

У вас может быть страница или веб-служба, возвращающая данные в том формате, который вы ожидаете, внутри родительского div:

<div id="items">
    <div class="item">This is 1 item <a href="delete?id=3">Delete this</a><div>
    ...
    ...
</div>

Ответ (т. Е. Text / html) той конкретной вещи, которую вы использовали, будет выглядеть как

<div class="item">This is 1 item <a href="delete?id=3">Delete this</a><div>
...
...

Затем вы можете использовать jQuery.load () для вызова этой страницы ... в конечном итоге код будет выглядеть так:

$('#items').load('pathToMyWebService');

jQuery.load () возвращает объект jQuery, так что вы можете также запускать свои селекторы на этом ... так что позвольте решению, которое вы собираетесь реализовать, быть полноценной HTML-страницей, и сгенерированные вами данные находятся внутри div с именем results ; Вы можете получить результаты таким образом ...

$('#items').load('pathToMyWebPage #results div');

Для правильной реализации проверьте документы: http://docs.jquery.com/Ajax/load#urldatacallback

1 голос
/ 28 октября 2009
$("#pageA").click(function(e){
   e.stopPropagation();
   $("#items").append($("<div>").load( $(this).find("a").attr("href")));
});
...