Domanda

ho bisogno di caricare alcuni contenuti Ajax dopo il fieldset con l'indirizzo di classe. Usando il codice qui sotto che andrà a sostituire il contenuto della .Address con il contenuto ajax.

    $('.accordion .head').click(function() {
    $(this).next().find('.address').after().load('http://test.dev/search/view/IdDaytrip/' + $(this).attr('id') + '.html');
    $(this).next().toggle('slow');
    return false;
}).next().hide();

<div style="display: none;">
<fieldset class="address">
<!-- AJAx CONTENT GOES HERE -->
    <ol>
        <li>Stadhouderskade 78</li>
        <li> Amsterdam-Zuid</li>
        <li>020-5239666</li>
    </ol>
</fieldset>
<!-- BUT THE AJAx CONTENT NEEDS TO GO HERE -->
<span class="tags">Tags: museum</span>
</div>
È stato utile?

Soluzione

Di solito faccio che in questo modo:

var clicked = $(this);
$.get('http://test.dev/search/view/IdDaytrip/' + $(this).attr('id') + '.html',
function(data){
    alert("Data Loaded: " + data);
    $(clicked).next().find('.address').after(data);
});

Altri suggerimenti

Questo dovrebbe funzionare ..

$('.accordion .head').click(function() {
    $next = $(this).next();
    $.get('http://test.dev/search/view/IdDaytrip/' + $(this).attr('id') + '.html',
          function(data){
                         $next.find('address').after( data );
                        }
         ).end().toggle('slow');
    return false;
}).next().hide()

In realtà after richiede l'oggetto da aggiungere dopo dato elemento. quando si chiama

$(this).nex().find('addresss').after()

si ritorna il riferimento a:

'address' + [content appended by `after`]

in quanto non abbiamo dato qualsiasi cosa per after funzione per aggiungere al Indirizzo quindi stiamo ancora chiamando load su $('.address').

utilizzare questo script, invece:

    $('.accordion .head').click(function() {
    $(this).next().find('.address').after($("div/>")
     .load('http://test.dev/search/view/IdDaytrip/' + 
         $(this).attr('id') + '.html'));
    $(this).next().toggle('slow');
    return false;
}).next().hide();

questo crea nuova div per avvolgere il contenuto ajax e mostrarlo in modo giusto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top