2012-07-29 31 views
1

我建立了一个从数据库导航,我要求不同类别的项目。所以基本上我有两部分导航:如何访问php生成的导航

第一部分是类别(文化,网页设计等)的导航。如果我点击这个,我问我的数据库与此类别的项目和创建PHP新链接:

$query="SELECT * FROM projects WHERE category=\"$category\""; 

$result=mysql_query($query); 

$num=mysql_numrows($result); 

mysql_close(); 

$i=0; 
while ($i < $num) { 
$title=mysql_result($result,$i,"title"); 
$id=mysql_result($result,$i,"id"); 
echo "<div class=\"sublink\" data-id=\"$id\" ><a href=\"#\">$title<br />"; 
$i++; 
} 

但似乎我不能用jQuery调用这些链接从我的主网页,就像我与做类别:

<div class="link" data-subsite="design"><a href="#"> design *</a></div> 
$(document).ready(function(){ 
$('.link').click(function(){ 
var subsite = $(this).data('subsite'); 
     $('#naviLeftContent').load('php/getNavi.php?category='+subsite); 
    }); 
}); 

现在我想做或多或少与我的子导航相同的负载特定文本/标题/信息到正确的divs。但是,从我的子导航生成的新div似乎不在我的源代码中,所以JavaScript无法识别它们。

回答

1

你似乎在寻找jQuery.on()(RESP jQuery.live(),这是不赞成的1.7版。):

附加的事件处理程序的当前选择现在和将来匹配这,所有的元素。

编辑:示例:

HTML:

<div id="menu"> 
    <div id="category1"> 
     <a href="#">link 1</a> 
     <a href="#">link 2</a> 
    </div> 
    <div id="category2"></div> 
</div> 

JS:

$(document).ready(function(){ 
    // Attach click handler 
    $(document).on("click", "#menu a", function(){ 
     alert("click!"); 
    }); 

    // Now load menu content, click handler will also work for this 
    $("#category2").load("content.php"); 
}); 



编辑2:解决方案在聊天中发现:

$('.link').click(function(){ 
    var subsite = $(this).data('subsite'); 
    $('#naviLeftContent').load('php/getNavi.php?category='+subsite); 
}); 
$(document).on("click", ".sublink", function(){ 
    var subsite = $(this).data('subsite'); 
    $('#textContent').load('php/subsite.php?page='+subsite); 
}); 



不知道如果我理解正确的话,但你加载通过AJAX导航的内容?这不是太复杂吗?通常,您让PHP生成整个导航并使用CSS隐藏不需要的部分。这有很多好处:

$result = mysql_query($query); 
while ($row = mysql_fetch_object($result)) { 
    echo $row->title; 
} 
+0

你能不能给我:少服务器的负载,更好的用户体验,...

此外,遍历MySQL的结果在PHP中,当这样做是一个很大的可读性一个例子? – 4ndro1d 2012-07-29 12:05:30

+0

当然,见上...... – Aletheios 2012-07-29 13:11:33

+0

不会是$(“子链路”)。点击(函数(){一样的? – 4ndro1d 2012-07-29 13:35:18