在jquery中,你可以使用$(element).mouseover()来触发mouseover事件。
在使用connect函数后的dojo中,我不确定如何触发事件。当我使用connect with click时,我可以使用element.click()来触发click,但是对于mouseover等其他事件,调用element.mouseover()不起作用。那么如何使用Dojo触发mouseover等事件呢? (我知道有一些简单的方法可以像fireEvent那样做这个,但它很麻烦而且不能跨浏览器证明)
这是一些代码
var myButton = dojo.byId("myButton"),
myDiv = dojo.byId("myDiv");
dojo.connect(myButton, "mouseover", function(evt){
dojo.style(myDiv, "backgroundColor", "blue");
});
dojo.connect(myButton, "click", function(evt){
dojo.style(myDiv, "backgroundColor", "yellow");
});
myButton.click();//works
myButton.mouseover();//doesn't work
jsFiddle上的代码:http://jsfiddle.net/mHKDt/28/
答案 0 :(得分:2)
这应该用于dojo 1.7示例。你不需要body标签上的样式表或claro类。它们是我的便笺模板的一部分,我使用的是尝试。
<html>
<head>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dijit/themes/claro/claro.css" media="screen">
<!-- load dojo and provide config via data attribute -->
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo.js"
data-dojo-config="async: true"></script>
</head>
<script type="text/javascript">
<!--
require(["dojo/mouse",
"dojo/dom",
"dojo/on",
"dojo/domReady!"],function(mouse,dom,on){
var node = dom.byId("myImg")
on(node,mouse.enter,function(){
console.info("In " + node.title);
});
on(node,mouse.leave,function(){
console.info("Out " + node.title);
});
});
//-->
</script>
<body class="claro">
<img id="myImg" title="yay google" src="http://www.google.com/ig/images/jfk/google_color.png"/>
</body>
</html>
答案 1 :(得分:0)
如果您不介意使用纯JavaScript,请看这篇文章Simulate Mouse Over in Vimperator plugin
我发现它与dojo很好地配合。
答案 2 :(得分:0)
尝试发布订阅。
<script type="text/javascript">
<!--
require(["dojo",
"dojo/topic",
"dojo/mouse",
"dojo/dom",
"dojo/on",
"dojo/domReady!"],function(dojo,topic,mouse,dom,on){
var node = dojo.byId("myImg");
topic.subscribe("mouseover",function(msg){
console.info("Called");
dojo.style("myDiv", "backgroundColor", msg);
});
on(node,mouse.enter,function(){
topic.publish("mouseover","green");
});
on(node,mouse.leave,function(){
topic.publish("mouseover","blue");
});
topic.publish("mouseover","black");
});
//-->
</script>