如何访问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);
    });
});

现在,我想对我的子导航做或多或少相同的事情,将特定的text/title/info加载到正确的div中。但是我的子导航中新生成的div似乎不在我的源代码中,所以JavaScript无法识别它们。

您似乎在搜索jQuery.on()(即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隐藏不需要的部分。这有很多优点:更少的服务器负载,更好的用户体验。。。

此外,在PHP中迭代MySQL的结果在这样做时可读性要高得多:

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

相关内容

  • 没有找到相关文章

最新更新