2011-08-09 53 views
2

我有一个主网页(main.html中),其将打开的iframe页(Iframe.html的).. iframe的被附加作为一种上main.html中ThickBox的窗口。现在在这个Iframe.html的,有一个div元素“myDiv”,我需要检测点击这个myDiv元素之外..检测单击元素外侧(与帧)

剧本是写了一个JS里面叫Iframe.html的

我已经尝试过几件事情(绑定事件到文档并从myDiv中删除),但那是行不通的。

$(document).click(function() { 
    //your code here 
}); 

$("#myDiv").unbind("click"); 

我不知道如果这个问题得到了什么,因为iframe的做...

请帮助我。谢谢。

+0

我想你可以结合不同的功能'myDiv'返回false,或者设置一个标志忽略'document'势必点击 – Mikhail

+0

THX很多......不知道为什么你说忽略约束的文档点击......我的意思是“myDiv”是在iframe中的一小部分......我想的iframe(即除myDiv)的其余部分向点击事件作出反应.. – Diana

回答

1

您是否尝试过这样的事情?它监听文档上的所有点击,但只在事件的目标不是myDiv元素时触发代码。通过这种方式,你可以告诉我们,如果点击是myDiv元素之外或不....我用的jQuery:

// assign a document listener $(document).click(function(e){

if($(e.target).attr('id') != "myDiv") 
{ 
    // execute your code here 
    alert(e.target);  } 
}); 

// assign an element listener 
$('#myDiv').live('click',function(){alert("clicked on myDiv")}); 

它也可以让你的特定代码分配给myDiv元素,如果被执行直接在myDiv元素上用户点击...

0

我想你想隐藏myDiv如果你点击它之外,试试这个。

$(document).click(function() { 
    $("#myDiv").hide(); 
}); 

$("#myDiv").click(function(e){ 
    e.stopPropagation(); 
}); 
+0

我已经尝试过, 。B它不工作.. – Diana

0

这是我在谈论的“标记&忽略”例程。我希望有做这一个jQuery原生的方法,因为使用标志像这是一个肮脏的黑客IMO

var myDiv = false; 
$(document).click(function() { 
    if (!myDiv) { 
    // your code here 
    } 
    myDiv = false; 
}); 

$("#myDiv").click(function(e){ 
    myDiv = true; 
    return false; // don't know if returning false will stop propagation in jQuery 
});