gpt4 book ai didi

javascript - Dojo,如何在 DIV 上执行 onclick 事件

转载 作者:数据小太阳 更新时间:2023-10-29 06:04:00 25 4
gpt4 key购买 nike

互联网上有一个淡出样本.. http://docs.dojocampus.org/dojo/fadeOut?t=tundra

但我想做点不一样的..我希望人们直接点击文本然后文本会淡出。

在我的代码中有一个 div 包装文本

<div id='parentNode'>
<div id='textDiv' onClick='whenClickAnyWhereWithinThisDiv_performFadeOut()'>
<div id='iconDiv'/>
<div id='messageDiv'/>
</div>
<div>

代码如下所示,我想要的是,当人们点击 textDiv 中的任意位置时,然后整个 textDiv 将消失..嗯.....为什么我的代码不起作用???

function whenClickAnyWhereWithinThisDiv_performFadeOut () {
...
...
dojo.connect(dijit.byId('textDiv'), "onClick", fadeOutAndRemove(parentNode, textDiv));
}
function fadeOutAndRemove (parent, currentDiv) {
// just assume i can get the parent Node, and the current div, which will be textDiv

var objectId = currentDiv.getAttribute('id');
dojo.style(objectId, "opacity", "1");
var fadeArgs = {
node: objectId,
duration: 2000
};
dojo.fadeOut(fadeArgs).play();

setTimeout(function() { parent.removeChild(currentDiv);}, 2000);
}

最佳答案

如果我明白你想做什么,我想你可以用这个来完成它:

HTML

 <div id='parentNode'> 
<div id='textDiv'>
<div id='iconDiv'>this is icon div</div>
<div id='messageDiv'>this is message div</div>
</div>
<div>

JavaScript

// do it when the DOM is loaded
dojo.addOnLoad( function() {
// attach on click to id="textDiv"
dojo.query('#textDiv').onclick( function(evt) {
// 'this' is now the element clicked on (e.g. id="textDiv")
var el = this;
// set opacity
dojo.style(this, "opacity","1");
// do fade out
dojo.fadeOut({
node: this,
duration: 2000,
// pass in an onEnd function ref that'll get run at end of animation
onEnd: function() {
// get rid of it
dojo.query(el).orphan()
}
}).play()
});
});

点击会冒泡,所以它会被 textDiv 捕获。

这里有一些有用的链接:

如果我误解了您的问题,请告诉我,我会更新我的答案。希望这会有所帮助。

关于javascript - Dojo,如何在 DIV 上执行 onclick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1107190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com