最新评论

共3页: 1 2 3 下一页 
菜鸟想飞 2011-08-05 13:00
学习了,非常感谢LZ奉献、
meng_philip 2011-07-15 08:55
挺好的 学习一下!
司域 2009-12-17 20:18
[quote]Ronie Deng:在要用js开发某些小功能的时候,最大的障碍往往不是想法,而是那些难以逾越的兼容性问题。[/quote] 深有同感,这个年头想用js+css写个应用是不容易..
司域 2009-12-17 20:01
IE6+、Opera 都没有出现你说的缓存问题,博主你使用的浏览器版本是多少?
梦清 2009-09-08 12:34
万分感谢,很受用
老飞 2008-10-01 14:58
正是我想要的啊,试试!
小猪凯 2008-08-05 11:11
这篇文章见过很多了,学习到不少东西.可是哪里是原创?这里是原创么?
chegan 2008-08-05 10:13
很好,学习了
缪缪 2008-07-01 09:23
好,很好,顶了
火无极 2008-06-24 16:34
求知无傲 2008-06-21 10:51
学习。
Ronie Deng 2008-06-20 22:43
@Alex.XL
终于想明白如何使用你说的绝招了,代码改成下面这样的:
$('popDiv').onclick=function(event){
event = event || window.event;
event.cancelBubble=true;
};
document.onclick = function() {
$('popDiv').style.display = 'none';
};
这简直就是从命题直接翻译过来的,非常直接。当点击到div时,将点击事件取消,就不会继续引发父级元素的click事件了,相当于点击无效一样。这种办法才是最有效的。
谢了!
狼Robot 2008-06-20 15:37
document.onclick = function(e)
{
var o = $("popDiv");
var el = (e ? e.target : event.srcElement);
var flag = false;
do
{
if(o == el)
{
flag = true;
break;
}
}while(el=el.parentNode)
if(!flag)
{
o.style.display = "none";
}
}
改了一下,就这样吧。
Ronie Deng 2008-06-20 12:00
@vento
恩,我试着理解你的思路,不过首先定义click事件的应该是document,而不是popDiv,而且你的思路忽略了一些浏览器兼容性问题。另外,还需要对event的target是否具有id等做一些判断。
最后,我针对你的做了一些兼容性改动,代码如下:
document.onclick=function(event){
event = event || window.event;
var target = event.srcElement || event.target; //取得点击的div
if (target.id != 'popDiv') $('popDiv').style.display = 'none';
};
不过我认为对很多元素的id去进行判断,还是不如对一个状态值判断来得简单,你说呢?
狼Robot 2008-06-20 11:50
document.onclick = function(e)
{
var o = $("popDiv");
var el = (e ? e.target : event.srcElement);
do
{
if(o == el)
{
o.style.display = "none";
break;
}
}while(el=el.parentNode)
}
不知道这样行不行.
晕,我似乎搞反了。
vento 2008-06-20 10:53
@Ronie Deng
$('popDiv').onclick=function(){
var target = window.event.srcElement; //取得点击的div
// 下面可通过id判断target和popDiv是否相同,相同隐藏
};
不过缺点如 Kidwind1 说的,当div内有其他元素时就隔屁了,需要通过循环判断夫元素是否是popDiv,这样的话你的反而更简单了
Ronie Deng 2008-06-20 09:44
@vento && Alex.XL
能否提供对应的简单demo呢,和5楼一样,对于你们的具体思路,还是不太清楚,希望能讲得更透彻一些。

@八二愚人
这里只是想要用简单的模型来讨论方案的实现,所以很多额外的东西都没有考虑在内了。
Kidwind1 2008-06-20 09:25
--引用--------------------------------------------------
vento: 利用onclick事件的srcElement属性会不会更简单?
--------------------------------------------------------
如果点击的是Div内的元素的话,srcElement属性指的是元素内的对象而非Div元素,因此通过判断是否点击在Div内还需取得点击元素的上及元素依次进行判断。

--引用--------------------------------------------------
Alex.XL: 有个event.cancelBubble=true;可以阻止事件往父控件继续触发。。
可以试试这个。
--------------------------------------------------------
是可以阻止事件冒泡,但如何判断是否要隐藏Div时仍然没有思路。能否具体讲讲。

个人认为楼主的方式还是可以借鉴的。
八二愚人 2008-06-20 08:53
全局变量是魔鬼!!!
Q.Lee.lulu 2008-06-20 08:38
LS正解!!楼主可以看看JS的冒泡事件....

PS:从来没想过要计算什么DIV坐标.一看到命题想的就是点击DIV和非DIV
共3页: 1 2 3 下一页