Javascript 使用dojo创建事件的三种方式。到底有什么区别?
这里的区别只是不同的语法糖类,还是有理由使用一种方法而不是另一种?它们都能工作,更令人困惑的是,这个和evt.currentTarget之间有什么区别 CSSJavascript 使用dojo创建事件的三种方式。到底有什么区别?,javascript,events,dojo,Javascript,Events,Dojo,这里的区别只是不同的语法糖类,还是有理由使用一种方法而不是另一种?它们都能工作,更令人困惑的是,这个和evt.currentTarget之间有什么区别 CSS #reportDetails table tr:hover td, #reportDetails table tr.hover td { background: #aae4e2; color: #333333; } 示例html <div id="reportDetails"> <table&g
#reportDetails table tr:hover td,
#reportDetails table tr.hover td {
background: #aae4e2;
color: #333333;
}
示例html
<div id="reportDetails">
<table>
<tr>
<td> something</td>
<td> soemthing else</td>
</tr>
<tr>
<td> something2</td>
<td> soemthing else2</td>
</tr>
</table>
</div>
某物
还有别的吗
什么
苏姆廷酒店2
dojo.behavior脚本
dojo.require("dojo.behavior");
if (dojo.isIE <= 6) {
dojo.behavior.add({
'#reportDetails tr': {
onmouseover: function(evt){ dojo.addClass(evt.currentTarget, "hover");},
onmouseout: function(evt){dojo.removeClass(evt.currentTarget, "hover");
}
}
});
}
dojo.behavior.apply();
dojo.require(“dojo.behavior”);
简言之,if(dojo.isIE没有什么真正的不同。它们都按照预期做
使用最方便的方式
此
指当前执行的函数的所有者。它与词法上下文不同。因此您不能将节点
和evt
替换为此
您作为一个问题问了太多问题。
if (dojo.isIE <= 6) {
dojo.addOnLoad(function() {
dojo.query("tr", "reportDetails").forEach(function(node){
node.onmouseover=function(){dojo.addClass(node,"hover");}
node.onmouseout=function() {dojo.removeClass(node,"hover");}
}
});
});
}
if (dojo.isIE <= 6) {
dojo.addOnLoad(function(){
dojo.query("tr", "reportDetails")
.onmouseover(function(evt){dojo.addClass(evt.currentTarget, "hover");})
.onmouseout(function(evt){dojo.removeClass(evt.currentTarget, "hover");});
});
}