我有一個指令與下面的鏈接功能。 setOver和setRating是指令控制器中的函數。單元測試鼠標事件指令angularJS
function (scope, iElem) {
return angular.forEach(iElem.children(), function (ul) {
return angular.forEach(ul.children, function (li) {
li.addEventListener('mouseover', function() {
return scope.setOver(parseInt($(li).attr('data-val')));
});
li.addEventListener('mouseout', function() {
return scope.setOver(0);
});
return li.addEventListener('click', function() {
return scope.setRating(parseInt($(li).attr('data-val')), ul);
});
});
});
}
該指令的模板如下。
<div><ul><li ng-class="{\'glyphicon-star active\':model>0,\'glyphicon-star-empty\':model<=0,\'over\':over>0}" data-val=1>this is a test</li><li ng-class="{\'glyphicon-star active\':model>1,\'glyphicon-star-empty\':model<=1,\'over\':over>1}" data-val=2>this is a test</li></ul></div>
我有下面,它不工作。
element = compile('....')(scope); //刪節簡潔
angular.forEach(element.children(), function (ul) {
angular.forEach(ul.children, function (li) {
if (i === 0) {
var mouseOverEvent = jQuery.Event('mouseover');
$(li).trigger(mouseOverEvent);
console.log(li);
expect($(li).hasClass('over')).toBe(true);
i++;
}
});
});
我想知道如何在li元素上模擬mouseover,mouseout和click事件。
是湯姆,我試過的所有版本,但似乎沒有任何觸發事件。 – Arun