我想在内容中使用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
任何帮助?
答案 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>