如果按钮文本被“跟随”并且用户将鼠标悬停在其上,我希望文本更改为“取消关注”,并在用户停止悬停后更改回“跟随”。
按钮:
{%if follow%}
<button type="submit" id="status" class="button" value="True"><span>followed</span></button>
{%else%}
<button type="submit" id="status" class="button" value="False"><span>follow</span></button>
{%endif%}
jQuery的:
<script>
$(document).ready(function(){
$(".button").click(function() {
var status = $("#status").val();
var course = $("#course").html()
//SECTION THAT I'M HAVING TROUBLE WITH
if ($(".button span").html() == "followed") {
$(".button").mouseover(function() {
$(".button span").html() = "unfollow";
}
}
$.ajax({
type: "POST",
url: "/follow",
data: 'status=' + status + "&course=" + course,
success: function() {
$(".button span").html($(".button span").html() == 'followed' ? 'follow' : 'followed');
$(".button").val($(".button").val() == 'True' ? 'False' : 'True');
}
});
return false;
});
});
</script>
当我跑步时,我得到了
405 Method Not Allowed
The method POST is not allowed for this resource.
但是当我删除鼠标悬停代码时,它可以工作。鼠标悬停代码出了什么问题?
编辑: 使用mouseout:
更新了现在可以在onclick代码之外工作的jQueryif ($(".button span").html() == "followed") {
$(".button").mouseover(function() {
$(".button span").html("unfollow");
});
$(".button").mouseout(function() {
$(".button span").html("followed");
});
}
编辑: 实际上,使用上面的代码,如果按钮被“跟随”并且我点击它,按钮文本仍然是“跟随”。我认为这是因为mouseout函数覆盖了ajax成功函数,将其更改为“follow”。单击按钮后,如何覆盖“跟随”鼠标输出功能?
答案 0 :(得分:8)
尝试以下方法,你错过了“);”在你的鼠标悬停电话上,那之后就把所有事情都搞砸了......
//SECTION THAT I'M HAVING TROUBLE WITH
if ($(".button span").html() == "followed") {
$(".button").mouseover(function() {
// Pass the new string into .html()
$(".button span").html("unfollow");
});
}
答案 1 :(得分:2)
$(document).ready(function(){
$('#status').hover(function() {
$(this).find('span').text('unfollow');
}, function() {
$(this).find('span').text('followed');
});
});
希望这可以提供帮助。 http://jsfiddle.net/sing0920/54yfg/
答案 2 :(得分:1)
您应该尝试在必要时限制JavaScript使用率。您可以通过常规CSS实现相同的目标。这是一个例子:
.button:hover .initialText, .hoverText {
display: none;
}
.button:hover .hoverText {
display: block;
}
HTML:
<div class="button">
<span class="initialText">Followed</span>
<span class="hoverText">Unfollow</span>
</div>