我在这里撞到墙上,希望我对一些明显的东西视而不见。
我有这个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
并点击该链接),该链接将起作用,后端操作将完成(故事已删除)。
我的代码中是否有错误,任何人都可以发现?如果没有,关于在哪里查看旁边的任何想法都会对此进行排查?
答案 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/