解决方案 »
- 关于Extjs4的问题:panel中通过iframe嵌套网页,弹出的Window中有grid panel,结果显示两行一样的column标题
- CSS用法+JS树形
- input name属性的问题
- jsp页面引用<c:forEach>
- ExtJs中,一个页面的Iframe弹出的消息框能否在该页面的中央显示?
- js 回复提示框
- 复选框问题。。。。。。?
- 如何隐藏窗体,JS变量如何传给PHP变量(在一个页面内)。
- 取表单a44值: FormName.a44.value,若var m="FormName.a"+44; 则m.value错,它的值咋取呢?多谢!
- js 在ie9 下不能用 怎么回事啊
- JS方法的参数还调类型的吗?为啥我传入字符串就报错
- 这种JS是用什么方式加密的?
javascript代码:var $ = function(i) {
return document.getElementByIdx_x_x_x(i)
};
function moreshow() {
var e = $('pkCityBx');
if (e.style.display != 'block') {
e.style.display = 'block';
} else {
e.style.display = 'none';
}
};
function moreddhide(e) {
if (!e) var e = window.event; // 如果e未定义,说明当前是IE浏览器 ,设置 e=window.event,其它浏览器中e就是event,所以不做处理
if (e.srcElement) {
var a = e.srcElement.getAttribute("id") //ie support e.srcElement , e.sreElement指向触发事件的元素
} else {
var a = e.target.getAttribute("id") //ff support e.target
}
//alert(a);
if (a != 'pkCity_Show') {
$('pkCityBx').style.display = 'none';
}
};
document.onclick = moreddhide;e||window.event注释: 参数为e||window.event 表示e或window.event 这句话是跨浏览器的写法
IE中该对象为window.event(window可省略) 而Firefox中该对象为e
至于该对象是什么:
该对象代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等 例如:获取光标位置 event.clientX event.clientY css样式:*{ margin:0; padding:0; line-height:none; border:none;}
body{ font-size:12px; padding:200px;}
a{ text-decoration:none;}
.wrap{ position:relative; width:150px; height:26px;}
.btn_click{ display:block; width:146px; height:22px; line-height:22px; text-align:center; color:#4ccb00; border:2px solid #4ccb00; border-radius:8px;}
.box_tips{ position:absolute; left:0; bottom:30px;}
.tips{ width:148px; text-align:center; color:#4ccb00; padding:80px 0px; border:1px solid #4ccb00}
.arrow{ text-align:center; color:#4ccb00;}html代码:<div class="wrap">
<div id="pkCityBx" class="box_tips" style="display:none">
<p class="tips">提示框</p>
<p class="arrow">▼</p>
</div>
<a href="#" class="btn_click" id="pkCity_Show" onclick="moreshow();">点击</a>
</div>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
<style type="text/css">
#msg{width:180px;border:1px solid #009933;height:150px;display:none;background:#ffffff;position:absolute;}
#btn{width:182px;height:35px;line-height:35px;background:#009933;position:absolute;top:350px;left:300px;}
</style>
</head>
<body>
<div id="msg">1</div>
<div id="btn">2</div>
<script type="text/javascript">
document.onclick = function (e) {
e = e || event;
var btn = document.getElementById("btn");
var msg = document.getElementById("msg");
var target = e.target || e.srcElement;
if (target !== btn && target !== msg) {
msg.style.display = "none";
} else {
msg.style.top = (btn.offsetTop - 160) + "px";
msg.style.left = btn.offsetLeft + "px";
msg.style.display = "block";
}
}
</script>
</div>
</body>
</html>
<html>
<head>
<script language="javascript" type="text/javascript">
// 工具类
var EventUtil = {
/**
* 添加事件
* @param oTarget: DOM对象
* @param sEventType:事件类型
* @param fn:函数名
*/
addEvent : function(oTarget,sEventType,fn){
if(oTarget.addEventListener){
this.addEvent = function(oTarget,sEventType,fn) {
oTarget.addEventListener(sEventType,fn,false);
}
}else if(oTarget.attachEvent){
this.addEvent = function(oTarget,sEventType,fn) {
oTarget.attachEvent("on" + sEventType,fn);
}
}else{
this.addEvent = function(oTarget,sEventType,fn) {
oTarget["on" + sEventType] = fn;
}
}
// 调用新函数
this.addEvent(oTarget,sEventType,fn);
} /**
* 移除事件
* @param oTarget: DOM对象
* @param sEventType:事件类型
* @param fn:函数名,如果DOM对象上有多个click事件的话,可以指定移除哪一个函数
*/
,removeEvent : function(oTarget,sEventType,fn){
if(oTarget.removeEventListener){
this.removeEvent = function(oTarget,sEventType,fn) {
oTarget.removeEventListener(sEventType,fn,false);
}
}else if(oTarget.detachEvent){
this.removeEvent = function(oTarget,sEventType,fn) {
oTarget.detachEvent("on"+sEventType,fn);
}
}else {
this.removeEvent = function(oTarget,sEventType,fn) {
oTarget["on"+sEventType] = null;
}
}
this.removeEvent(oTarget,sEventType,fn);
}
/**
* 格式化事件对象,做到IE与DOM的统一
* @param oEvent:事件对象
*/
,formatEvent : function(oEvent){
if(!+[1,]){ // IE
oEvent.charCode = (oEvent.type == "keypress")?oEvent.charCode:0;
oEvent.eventPhase = 2;
oEvent.isChar = (oEvent.charCode > 0);
oEvent.pageX = oEvent.clientX + document.body.scrollLeft;
oEvent.pageY = oEvent.clientY + document.body.scrollTop;
// 阻止某个事件的默认行为
oEvent.preventDefault = function(){
this.returnValue = false;
}
if(oEvent.type == "mouseout"){
oEvent.relateTarget = oEvent.toElement;
} else if(oEvent.type == "mouseover"){
oEvent.relateTarget = oEvent.fromElement;
}
// 阻止冒泡
oEvent.stopPropagation = function(){
this.cancelBubble = true;
}
oEvent.target = oEvent.srcElement;
oEvent.timestamp = (new Date()).getTime();
}
return oEvent;
}
/**
* 格式化事件对象
*/
,getEvent : function(){
if(window.event){
return this.formatEvent(window.event);
}else {
return this.getEvent.caller.arguments[0];
}
}
/**
* 点击div之外任何地方,隐藏div
* @param showDom 点击showDom显示targtDom,点击页面其它地方隐藏targetDom
* @param targetDom 目标元素
*/
,registClickOtherHide:function(showDom,targetDom) {
var self = this;
this.addEvent(document,'click',function(){
var e = self.getEvent();
var elem = e.target
while (elem) {
if (elem != document) {
if (elem === targetDom || elem === showDom) {
targetDom.style.display = "block";
return;
}
elem = elem.parentNode;
} else {
targetDom.style.display = "none";
return;
}
}
})
}
};
function showDiv() {
document.getElementById('d').style.display = "block";
}window.onload = function(){
// 注册事件
EventUtil.registClickOtherHide(document.getElementById('btnShow'),document.getElementById('d'));
}
</script>
</head><body> <button id="btnShow" onclick="showDiv();">showDiv</button>
<div id="d" style="width: 100px;height: 100px;background-color: red;">
<div style="width:50px;height: 50px;background-color: blue;"></div>
</body>
</html>
function moreshow(){
//...
}window.onload = function(){
// 注册事件
EventUtil.registClickOtherHide(document.getElementById('pkCity_Show'),document.getElementById('pkCityBx'));
}
function moreshow(){
//...
}window.onload = function(){
// 注册事件
EventUtil.registClickOtherHide(document.getElementById('pkCity_Show'),document.getElementById('pkCityBx'));
}有点看不懂呵,是新添加了一行吗?
谢谢大神,请问下您知道怎么让鼠标发生变化吗?点击的时候鼠标变成手的形状
这个你完全可以百度的到的,在css里边加一句:cursor:pointer;