使用带有超链接的ajax

时间:2012-11-08 15:21:15

标签: javascript html ajax

我创建了一个书签页面,用于从数据库中检索链接并显示它。我可以登录,添加新链接&删除它们。但是,当我删除一个条目时,它会显示 delete.php ,而不是将页面加载到自身上(查询确实有效)。

我最有可能过度复杂我的代码,可能会忽略一些简单的东西,因为我已经在页面的其他元素中使用了很多JavaScript。

动态添加条目,以便附加HTML的这部分:

<h2>
    <a href="delete.php?URL='+url+'">[x]</a>
</h2>
<a href="'+url+'" target="iFrame" class="linkURL">
    <div class="bookmark">
        <h3 style="float: left;">'+title+'</h3>
        <br />
        <p>'+desc+'</p>
    </div>
</a>

JavaScript的:

//  DELETE FUNCTION
$("h2 a").click(function() {
    return false;
    var action = $(this).attr('href');
    var form_data = {
        URL: $("#linkURL").attr('href'),
        is_ajax: 1
    }; // form_data
    $.ajax({
        type: "POST",
        url: action,
        data: form_data,
        success: function(response){
            if(response == 'success') {
                alert('Successful delete!');
            } else { // if
                alert('Delete failed.');
            } // else
        } // function(response)
    }); // ajax
    return false;
}); // h2

页面位于此处:http://samaradionne.com/links6/如果更容易查看整个内容。

2 个答案:

答案 0 :(得分:1)

您正在使用锚标记a和点击事件。您正在获取实际的delete.php页面,因为当您单击锚标记时,它就像任何常规链接一样工作。您的代码中没有任何内容表示“嘿,实际上并不像平常那​​样遵循此链接”。

关注该链接,您需要

<a href="yoururl" onclick="return false;">[x]</a>

此外,您将jQuery点击事件附加到h2,这本身并不坏,只是因为意图实际点击链接而感到困惑。在这种情况下,您需要:

$("h2 a").click(function(){});

最后,为了实现这一切,您可以执行以下操作:

 $("h2 a").click(function(){
     // your normal logic

     return false; // don't follow link
 });

然后您不必在锚标记中包含onclick

答案 1 :(得分:0)

由于我的链接是动态生成的,因此我的.h2点击将其自身附加到尚未存在的内容上。我向我的append函数添加了一个事件触发器,用于调用我的删除函数。

问题解决了。