2009-11-13 5 views
0

Я хочу использовать JQuery код внутри контента (дел) уже нагруженной JQuery, вот мой пример кода:вызова JQuery дважды

<!-- 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> 

Сейчас в server.php я поставил этот:

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

но он не работает ..

Вы можете видеть, в первой вкладке ссылку (Add Row) отлично работает, но он не работает в (# Секунда) вкладки , потому что (я думаю), это загружен уже с помощью ajax.

Не сказать поставить эту линию

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

после

<div id="second"> 

и перед яваскриптом кода, потому что это простой код, чтобы очистить мою проблему. Мой код очень сложный, и мне нужно поставить (например) эту строку (добавить строку Row) в Server.php, и я хочу, чтобы она показывала slideAddForm div

Любая помощь?

+0

Я догадался, что, по-моему, происходит и как его исправить. Но, чтобы точно знать, вам придется опубликовать код, который показывает ваш div slideAddForm. –

ответ

0

Просто позвоните еще раз.

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

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

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

Вы должны быть обязательными код, чтобы показать slideAddForm дел до .bAddRow где-то, не так ли? Может, что-то вроде этого?

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

Чтобы связать текущие и будущие соответствующие элементы, использовать метод live связать событие вместо:

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

(И убедитесь, что читать the jQuery documentation for the method, так как есть несколько отличий от привязки.)

0

Какую функцию вы вызываете, когда вы нажимаете на bAddRow? Кроме того, пытаетесь ли вы сказать, что вы просто хотите привязать событие click к bAddRow, когда панель является laoded? Если это так, это должно сработать:

<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> 
Смежные вопросы