jQuery get()在点击时没有触发,在控制台中没有错误

时间:2012-12-17 16:13:05

标签: ajax jquery

我在这里撞到墙上,希望我对一些明显的东西视而不见。

我有这个DOM结构:

<ul>
    <li>
        <h3>Lorem ipusm</h3>
        <p class="remove-story"><a href="http://example.com/remove/XX">Delete</a></p>
    </li>
</ul>

这是我的jQuery:

$(".remove-story a").click(function()
    {
        var parent = $(this).closest('li');
        $.get($(this).attr('href'), function()
        {
            $(parent).fadeOut();
        });
        return false;
    });

目前,点击.remove-story中的链接不会做任何事情,并且链接中的URL触发的操作也不会发生。

在页面加载或单击链接时,控制台中不会弹出JS错误。

如果我删除$.get功能并简单地淡出列表项,则按预期工作。

如果我手动访问该网址(或删除return false并点击该链接),该链接将起作用,后端操作将完成(故事已删除)。

我的代码中是否有错误,任何人都可以发现?如果没有,关于在哪里查看旁边的任何想法都会对此进行排查?

3 个答案:

答案 0 :(得分:1)

使用$(document).ready(function() {})包裹您的onclick:

$(".remove-story > a").click(function(e)
    {
        var parent = $(this).closest('li');
        alert($(this).attr('href'));
        $.ajax({
            url: $(this).attr('href'),
            success: function() {
                alert(12);
                $(parent).fadeOut();
            },
            error: function(e) {
                alert('baaaahhhh:' + e);
            }
        })
         //e.stopPropagation();
        return false;
    }); 


​

更新:将$.get更改为$.ajax以查看在执行Ajax请求时是否出错。

答案 1 :(得分:1)

我首先检查是否真的发送了我们的请求,我的意思是使用一些工具,如Fiddler或Chrome开发者工具网络标签,然后可能在通话中添加断点,看看你在那个特定的背景下是没有什么或是错误的对象

答案 2 :(得分:0)

您需要对链接encodeURIComponent($(this).attr('href'));

进行编码

这是一个jsfiddle工作: http://jsfiddle.net/9Wnt8/