调用jQuery两次

时间:2009-11-13 16:24:24

标签: jquery

我想在内容中使用jQuery代码(div)已经由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 !  -->

但它不起作用..

你可以看到,在第一个标签中,链接(添加行)工作正常,但它在(#second)选项卡中不起作用 因为(我认为)它已经被ajax加载了。

不要说放这行

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

之后

<div id="second">

之前和javascript代码,因为这是一个简单的代码来清除我的问题。 我真的代码很复杂,我必须在Server.php中放置(例如)这一行(添加Row链接),我希望它显示slideAddForm div

任何帮助?

3 个答案:

答案 0 :(得分:2)

您必须绑定代码才能在某处显示slideAddForm div到.bAddRow,对吧?也许是这样的?

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

要绑定当前和未来匹配的元素,请使用live方法来绑定事件:

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

(并确保阅读the jQuery documentation for the method,因为与bind存在一些差异。)

答案 1 :(得分:0)

再试一次。

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

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

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

答案 2 :(得分:0)

单击bAddRow时,您会调用哪个函数?另外,您是否想说,您只是想在面板加密时将click事件重新附加到bAddRow?如果是这样,这应该有效:

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