ajax收到链接无法点击

时间:2015-10-08 14:10:52

标签: php jquery ajax

过去几天我一直在使用ajax,而且在保持链接可点击时我会陷入困境。

我有一个包含一些listitems的菜单,并在外部javascript文件中附加了一个eventhander,它看起来像这样:

document.getElementById('home').addEventListener("click", navigate, false);

所有元素。在导航功能中,我使用的是ajax:

$.ajax({
        type: "POST",
        url: "php/navigation.php",
        data: "clicked=" + this.id,
        dataType: 'json',
        async: false,
        success: function(response) {
            if (response && response.text1 && response.text2) {
                $("#leftContent").html(response.text1);
                $("#rightContent").html(response.text2);
            }
        }
    });

我正在使用json数据类型,因此我可以为两个div #leftContent和#rightContent分隔数据。现在php文件做了一些简单的查询来从db获取数据。 但是这很好用!填写到html对象中的代码可以正常工作。我用css设计它使它看起来很好看起来上面的解决方案似乎没问题。

但是当我使用navigation.php文件中的链接进行响应时,它无法点击。 所以想象一下navigation.php看起来像这样(简化)

$content = json_encode(array(
            'text1' => '<a href="127.0.0.1">link</a>"',
            'text2' => 'This text would go in response text 2'
        ));

echo $content;

我试图使用href =“#”并使用onlick方法并使用函数来处理这个但仍然没有任何反应。我确实在网上搜索并遇到了bind() - 允许添加和Eventhandler的方法。 好吧,我可以这样但如果我从php文件中收到一个链接列表怎么办?某种:

$content = json_encode(array(
            'text1' => '<a href="http://...">link</a><br /> <a href="http://...">link</a><br /> <a href="http://...">link</a><br /> ',
            'text2' => 'This text would go in response text 2'
        ));

echo $content;

我可以在整个列表中添加一个事件处理程序,但不是每个单独的元素。 有一个简单的解决方案吗? 使用多维数组作为响应并解析数据将是一个想法。或者只是一种简单的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用jQuery on绑定容器,以便在更换链接时维护您的活动:

类似的东西:

$('#leftContent').on('click', 'a', navigate);