2014-02-24 51 views
0

我知道有很多关于preventDefault()不工作的帖子,但我去了那些,没有得到它。Javascript预防默认不工作

我所做的只是捕获一个点击事件,然后从响应中附加html,但preventDefault()不会停止重新加载页面,我很困惑为什么。

这里是我的HTML:

<div class="slide_pane"> 
<div class="profile_content"></div> 

<div class="account_bottom_bar"> 
    <ul class="bottom_bar_list"> 
    <a href="/profiles/load" class="sidebar_link"> 
     <li> 
     <p>Content</p> 
     </li> 
    </a> 
    </ul> 
</div> 

这是我的JS:

$(document).scroll(function() { 
ajaxView(); 
}); 

var ajaxView = function() { 
$('.sidebar_link').click(function(e) { 
e.preventDefault(); 
$.ajax ({ 
    type: 'GET', 
    url: $(this).attr("href") 

    }).done(function(resp) { 
    $('.profile_content').append(resp); 
    }); 
}); 
}; 

但是,当我打的动作,它只是加载在一个新的屏幕响应的HTML。

任何想法??谢谢!

+3

哪里是你的榜样了'.sidebar_link'元素?看起来您每次用户滚动页面时都会向该元素添加新的事件处理程序,这非常糟糕。 –

+0

[jQuery anchor preventDefault]的可能重复(http://stackoverflow.com/questions/3786898/jquery-anchor-preventdefault) –

+0

对不起Felix Kling。只是编辑它...它的链接 – user3029619

回答

0

没有任何反应,因为HTML中没有sidebar_link。

例使用event.preventDefault的():

$(document).ready(function() { 
    $(".sidebar_link").click(function(event) { 
     event.preventDefault(); 
     $(this).css("color", "red"); 
    }); 
}); 

这里是)上的链接的示例演示如何使用event.preventDefault(:http://jsfiddle.net/LUKVT/

+0

对不起,我刚刚编辑它 – user3029619

+0

我使用你的代码,它不会重新加载在这里:http://jsfiddle.net/y4FRr/我错过了什么? – martynas

+0

所以我只注意到我使用的是document.scroll而不是.ready:P但是奇怪的是,当我将Chrome检查器启动并执行该操作时,它不会重新加载,但是当我没有检查器时它会重新加载...不真的得到那部分 – user3029619