2009-11-13 6 views
0

Je veux utiliser le code jQuery dans le contenu (div) est déjà chargé par jQuery, voici mon exemple de code:appel jQuery deux fois

<!-- Slide Panel with Form Adding data --> 
<div style="display: none;" id="slideAddForm" > 
<h2>Add Row</h2> 
from here .. 
</div> 

<div class="tabs"> <!-- Tabs --> 
    <ul> 
     <li><a href="#first"> First </a></li> 
     <li><a class="secondA" href="#second"> Second </a></li> 
     <li><a class="comments_title" href="#third"> Third </a></li> 
    </ul> 
</div> 

<!-- first tab .. html data --> 
<div id="first"> 
<a class="bAddRow" href="#"> Add Row </a> <!-- To show slideAddForm div .. it`s work OK --> 
anything here .. 
</div> 

<!-- second tab and 3rd tab get data from server --> 
<div id="second"> 
    <!-- load page in this tab --> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
     $("a.secondA").click(function(){ 
     $("#second").load("server.php"); 
     }); 
     }); 
    </script> 
</div> 

<div id="third"></div> 

Maintenant en server.php je mets ceci:

<a class="bAddRow" href="#"> Add Row </a> <!-- not work ! --> 

mais cela ne fonctionne pas ..

Vous pouvez voir, dans le premier onglet le lien (Ajouter une ligne) fonctionne très bien, mais cela ne fonctionne pas dans l'onglet (#Secondes) parce que (je pense), il est déjà chargé par ajax.

Ne dites pas mettre cette ligne

<a class="bAddRow" href="#"> Add Row </a> 

après

<div id="second"> 

et avant le code javascript, parce que c'est un code simple pour effacer mon problème. Mon code est vraiment compliqué, et je dois mettre (par exemple) cette ligne (ajouter un lien Row) dans le Server.php et je veux qu'il affiche slideAddForm div

Une aide?

+0

J'ai pris une estimation de ce que je pense et comment le réparer. Mais pour être sûr, vous devrez poster le code qui montre votre div slideAddForm. –

Répondre

0

Appelez-le à nouveau.

function loader(){ 
    $("#second").load("server.php"); 
    clickmaker(); 
}); 

function clickmaker() { 
    $("a.secondA").click(loader); 
} 

$(document).ready(clickmaker()); 
2

Vous devez être le code de liaison pour montrer la slideAddForm div quelque part .bAddRow, non? Peut-être quelque chose comme ça?

$('.bAddRow').bind('click', function() { 
    $('slideAddForm').show(); 
} 

Pour lier les éléments correspondants actuels et futurs, utilisez la méthode live pour lier l'événement au lieu:

$('.bAddRow').live('click', function() { 
    $('slideAddForm').show(); 
} 

(Et assurez-vous de lire the jQuery documentation for the method, car il y a quelques différences de liaison.)

0

Quelle est la fonction que vous appelez lorsque vous cliquez sur bAddRow? En outre, essayez-vous de dire, vous voulez juste rattacher l'événement de clic à bAddRow quand le panneau est laoded? Si oui, cela devrait fonctionner:

<script type="text/javascript"> 
var RowAdder = { 

    //Initialize 
    Init: function() { 
     $("a.secondA").click(function() { 
     $("#second").load("server.php", function() { 
      RowAdder.Attach();  
     }); 
     }); 
    }, 

    //Reattach events 
    Attach: function() { 
     $(".bAddRow").click(function(){ 
      //ADD EVENTS BEHIND bAddRow CLICK HERE 
     }); 
    }, 
}; 

//Initialize script 
$(document).ready(function(){ 
    RowAdder.Init(); 
}); 
</script>