这就是我所拥有的
在我的.master页面上,我有以下
<script type="text/javascript">
$(document).ready(function() {
$(this).hover(function() {
$(this).addClass("ui-state-hover");
},
function() {
$(this).removeClass("ui-state-hover");
}
).mousedown(function() {
$(this).addClass("ui-state-active");
})
.mouseup(function() {
$(this).removeClass("ui-state-active");
});
});
我的asp.net按钮声明如下
<asp:button runat="server" id="cmdSubmitShipmentRequest" cssclass="ui-button ui-state-default ui-corner-all" text="Submit" />
预期的行为是,只要鼠标指针悬停在任何按钮中,就会添加和删除上面声明的css类。目前默认的css属性适用,但是当我悬停进出按钮时,我得到以下错误“对象预期”第11行(IE8其他浏览器不显示任何内容),这是"<script type="text/javascript">"
开始的位置。
关于我可能做错什么的任何线索?
用答案编辑
<小时/> 我做错了两件事
我正在使用 $(this).hover 应该是 $('。ui-button')。hover 我最初但是我输入了它为 $(“。ui-button”)。悬停注意双重报价!
在我的.master页面上,我使用asp.net javascript管理器声明我的javascript,如下所示
问题是我的javascript代码块下面有脚本声明!
最后,这就是javascript和代码块的样子,并且一切正常。
<asp:scriptmanager id="scriptManager" runat="server">
<scripts>
<asp:scriptreference path="~/javascript/jquery-1.3.2.min.js" />
<asp:scriptreference path="~/javascript/jquery-ui-1.7.2.custom.min.js" />
<asp:scriptreference path="~/Javascript/thickbox.js" />
</scripts>
</asp:scriptmanager>
<script type="text/javascript">
$(document).ready(function() {
$('.ui-button').hover(function() {
$(this).addClass("ui-state-hover");
},
function() {
$(this).removeClass("ui-state-hover");
}
).mousedown(function() {
$(this).addClass("ui-state-active");
})
.mouseup(function() {
$(this).removeClass("ui-state-active");
});
});
</script>
答案 0 :(得分:3)
尝试将代码更改为此....
$(document).ready(function() {
//SELECT THE .ui-button CLASS INSTEAD OF this
$('.ui-button').hover(function() {
$(this).addClass("ui-state-hover");
},
function() {
$(this).removeClass("ui-state-hover");
}
).mousedown(function() {
$(this).addClass("ui-state-active");
})
.mouseup(function() {
$(this).removeClass("ui-state-active");
});
});
我不相信当您使用这行代码时,“this”具有您所定位的上下文...
$(this).hover(function() {
尝试使用以下内容替换上面的行...
$('.ui-button').hover(function() {
答案 1 :(得分:1)
另外,请确保在此之上的某处包含jquery库。
$(document).ready(function() {
$('.ui-button').hover(function() {
$(this).addClass("ui-state-hover");
},
function() {
$(this).removeClass("ui-state-hover");
}
).mousedown(function() {
$(this).addClass("ui-state-active");
})
.mouseup(function() {
$(this).removeClass("ui-state-active");
});
});
答案 2 :(得分:1)
在您当前的代码段中,$(this)指的是$(文档)。试试这个:
$(document).ready(function() {
$('.ui-button').hover(function() {
$(this).addClass("ui-state-hover");
}, <rest of code omitted>
}
现在$(this)指的是$('。ui-button'),这就是你想要的。