2009-11-13 48 views
0

我想用里面的内容(DIV)已经被加载的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 ! --> 

但它不工作..

可以看到,在第一标签中的链接(添加行)正常工作,但因为(我觉得)它不会在(#second)选项卡 工作是由ajax加载。

不说,就把这行

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

<div id="second"> 

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

任何帮助?

+0

我猜测了我的想法和如何解决它。但要确定地知道,您必须发布显示您的slideAddForm div的代码。 – 2009-11-13 16:54:03

回答

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时,你会调用什么函数?另外,你是否想说,当面板被覆盖时,你只是想将点击事件重新附加到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>