【发布时间】:2012-05-10 12:23:37
【问题描述】:
我有一个如下所示的按钮。 我有一个按钮列表。 当用户单击它时,我运行一个 javascript 函数并发出一个 ajax 请求,如果请求响应成功,则我更改按钮标签的状态属性。我将它从 1 更改为 2。
当属性 status=1 时,我希望用户在将鼠标悬停在按钮上时看到一些文本。
当属性 status=2 时,我不希望他在按钮悬停时看到任何内容。
我尝试如下,但在 status=2 之后,悬停时按钮文本仍然会发生变化。 我怎样才能解决这个问题?
<button onclick="dosomething()" id="someid" status="1">name</button>
<script>
function dosomething(){
$.ajax({
type:"GET",
url:"somefile.php",
success : function(data) {
if (data == '200') {
$('#someid').attr('status', '2');
}
},
error : function() {
alert('error');
},
})
}
$(document).ready(function() {
updateHoverStates()
});
$(document).change(function () {
updateHoverStates()
});
function updateHoverStates() {
$('button[status=1]').hover(
function () {
$(this).text('You are hovering');
},
function () {
$(this).text('You are not hovering');
}
);
}
</script>
【问题讨论】:
-
你真的应该在javascript中设置你的点击处理程序;此外,您所有的 jQuery 都应该在
$(document).ready(...)内。这段代码真是一团糟。 -
我认为最好使用 css 类而不是
status属性来保持您的 html 有效...
标签: javascript jquery hover jquery-hover