目前,我有一些 jQuery/Javascript 代码可以在用户将鼠标悬停在某些元素上时切换 css 类“ui-state-hovered”,我想在 konacha 中编写一个测试来测试这段代码。
我将如何在 jQuery 的帮助下用 Javascript 编写这个函数?
如果用户将鼠标悬停在元素 $('.someClass li:first') 上,则返回 true,类 'ui-state-hovered' 存在。否则返回假。
我将如何模拟用户将鼠标悬停在该元素上?
目前,我有一些 jQuery/Javascript 代码可以在用户将鼠标悬停在某些元素上时切换 css 类“ui-state-hovered”,我想在 konacha 中编写一个测试来测试这段代码。
我将如何在 jQuery 的帮助下用 Javascript 编写这个函数?
如果用户将鼠标悬停在元素 $('.someClass li:first') 上,则返回 true,类 'ui-state-hovered' 存在。否则返回假。
我将如何模拟用户将鼠标悬停在该元素上?
尝试mouseenter
并mouseleave
$('.someClass li:first').mouseenter().mouseleave();
来自 jQuery 文档
调用
$(selector).hover(handlerIn, handlerOut)
是以下的简写:$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
演示:http: //jsfiddle.net/skram/wh5N9/
尝试在下面检查将在悬停中添加的类
$("#test").mouseenter(function() {
console.log('Has class hover ' + $(this).hasClass('ui-state-hovered'));
}).mouseleave(function() {
console.log('Has class hover ' + $(this).hasClass('ui-state-hovered'));
})
确保以上内容注册后.hover
演示:http: //jsfiddle.net/skram/wh5N9/2/
简写设置 mouseenter/mouseleave 事件
$(".someClass li:first").hover(
// Mouse Over
function(){
$(this).addClass("ui-state-hovered");
},
// Mouse Out
function(){
$(this).removeClass("ui-state-hovered");
});
编辑
设置事件 mouseenter
$(".someClass li:first").mouseenter(function(){
$(this).addClass("ui-state-hovered");
}
设置事件 mouseleave
$(".someClass li:first").mouseleave(function(){
$(this).removeClass("ui-state-hovered");
});
模拟鼠标悬停:
$(".someClass li:first").trigger("mouseenter");
模拟鼠标移出:
$(".someClass li:first").trigger("mouseleave");
要检查一个类:
$(".someClass li:first").hasClass("ui-state-hovered");
如果有一个类,则返回 true:
function checkClass(elem, class){
return $(elem).hasClass(class);
};
编辑 2
我以前从未使用过 Konacha,但如果我使用 solitr.com 上的本指南作为我的指南来尝试一下,我会说:
HTML
<div id="testDiv" class="foo">Some Text</div>
jQuery
checkClass = function(elem, class){
return $(elem).hasClass(class);
};
科纳查
describe('checkClass', function() {
it('should be true if elem has class', function() {
checkClass("#testDiv", "foo").should.be.true;
checkClass("#testDiv", "bar").should.be.false;
});
});
使用控制台,您可以尝试 $('#yourelement').trigger('mouseover');
悬停时写函数
$('.someClass li:first').hover(function(){
return $(this).attr('class').indexOf('ui-state-hovered') > -1;
});