我有这个HTML:
<a class="unfollow_url" href="http://localhost/snapll_back/account/unfollow.php?id=2">
<div class="unfollow_button_flwrs">unfollow</div>
</a>
当用户点击&#34; .unfollow_button_flwrs&#34; &#39; href&#39;的价值其父元素的属性(&#34; .unfollow_url&#34;)应存储在变量中并发出警告(用于测试目的)。
这是我的JQuery&#34;:
$(".unfollow_button_flwrs").click(function() {
var follower_user_id = $(this).parent().attr('href');
alert(follower_user_id);
return false;
});
然而,当我点击按钮时,它只是将我重定向到页面,即使我返回false并且当我添加e.preventDefault()时它也会重定向我。
我该如何解决这个问题?
答案 0 :(得分:4)
您需要确保在DOM准备就绪时附加事件:
$(function(){
$(".unfollow_button_flwrs").click(function() {
var follower_user_id = $(this).parent().attr('href');
alert(follower_user_id);
return false;
});})
注意:如果动态添加元素,则需要使用事件委派将事件附加到此元素。
更新:使用事件委派:
$("body").on('click','.unfollow_button_flwrs',function() {
var follower_user_id = $(this).parent().attr('href');
alert(follower_user_id);
return false;
});
答案 1 :(得分:0)
我认为因为您要将e.preventDefault();
添加到div.unfollow_button_flwrs类而不是a.unfollow_url类。尝试:
$(".unfollow_button_flwrs").parent().click(function(e) {
e.preventDefault();
var follower_user_id = $(this).attr('href');
alert(follower_user_id);
return false;
});