当鼠标点击页面其他地方时隐藏某个元素
来源:互联网 发布:sql注入危害 编辑:程序博客网 时间:2024/06/06 03:05
这个比较常用,比如我们点击弹出一个下拉框,但是想当鼠标点击别的地方时下拉框自动隐藏。注意区别于hover.
首先是clk-hide.js 文件的内容:
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){var isCursorIn, regEles;isCursorIn = require('./is-cursor-in.coffee');regEles = require('./register-clk-hide.coffee');(function() { var $; if ((typeof window) === 'undefined') { return console.error("only run in browser."); } if ((typeof jQuery) === 'undefined') { return console.error("require jQuery."); } $ = jQuery; return $(document).click(function(e) { return $.each(regEles(), function(originSelector, arg) { var base, hideSelector, name, options; hideSelector = arg[0], options = arg[1]; if (options.findAsChild) { return $(originSelector).each(function(index) { var base, name; if (isCursorIn(this) || isCursorIn(hideSelector)) { return; } return typeof (base = $(hideSelector, this))[name = options.handle] === "function" ? base[name]() : void 0; }); } else { if (isCursorIn(originSelector) || isCursorIn(hideSelector)) { return; } return typeof (base = $(hideSelector))[name = options.handle] === "function" ? base[name]() : void 0; } }); });})();},{"./is-cursor-in.coffee":2,"./register-clk-hide.coffee":3}],2:[function(require,module,exports){/*这个函数会保存当前鼠标所在的元素,然后通过这个元素判断鼠标是否在指定的元素里@param ele jQuery对象 */module.exports = (function() { var currentEle; currentEle = null; $(document).mouseover(function(e) { return currentEle = e.target; }); return function(ele) { var currentEleJquery; currentEleJquery = $(currentEle); return currentEleJquery.is(ele) || currentEleJquery.parents().is(ele); };})();},{}],3:[function(require,module,exports){var optionsDefault, regEles;optionsDefault = { handle: "hide", findAsChild: true};regEles = {};window.registerClkHide = function(originSelector, hideSelector, options) { return regEles[originSelector] = [hideSelector, $.extend(optionsDefault, options)];};module.exports = function() { return regEles;};},{}]},{},[1,2,3]);
如何调用呢?很简单首先引入上面的JS文件,(<span style="color:#ff6666;">但是前提是你必须也引入了jquery</span>)然后:
<pre name="code" class="javascript">$(function(){ window.registerClkHide(".click_ele ", "hide_ele", { handle: "hide",
// findAsChild:true});})
传入的3个参数,分别是鼠标点击的元素,需要隐藏的元素,参数配置
也就是鼠标点击的位置不是 <span style="font-family: Arial, Helvetica, sans-serif;">click_ele时,hide_ele就会隐藏。</span><pre name="code" class="javascript">
页面里可能为有多个下拉框同时出现的情况,然后它们的class却都相同,但是我们想在点击第一个下拉框弹出后,当又点击另外一个时,
我们希望第一个下拉框收起来(消失),这时候我们就要用到参数配置里面的<pre name="code" class="javascript">findAsChild:true
<span style="color:#ff6666;">他的局限性是,hide_ele必须是click_ele的子元素。</span>
0 0
- 当鼠标点击页面其他地方时隐藏某个元素
- Javascript的问题:鼠标点击其他地方时隐藏div
- ios开发: 当点击其他地方时, 隐藏文本框弹出的键盘
- 页面点击其他地方时进行某些操作
- jQuery 怎么实现点击页面其他地方隐藏菜单? 做了个按钮点击时弹出菜单,想实现点击其他地方时隐藏弹出的菜单
- CListCtrl 实现 当点击界面的其他地方时,列表中的选中项仍处于选中状态
- 点击其他区域时隐藏元素
- js 鼠标点击一个按钮显示div的浮动框,点击页面其他任何地方后,隐藏浮动框
- 点击显示指定元素,隐藏其他同辈元素
- jq 点击元素其他区域 该元素隐藏
- 当点击页面空白处时,隐藏软键盘
- 有三个页面,当点击其中一个另两个隐藏
- 鼠标点击页面的其它地方div自动隐藏
- 点击页面上某个元素实现动画的滚动效果
- Android在点击或触摸除过EditText之外的任何地方时隐藏软键盘
- js获取页面元素和鼠标的点击位置
- js点击某个元素控制div显示,点击除div区域外任意处div隐藏
- JQuery 点击页面任意地方隐藏指定元素
- javac编译的过程
- DATA GUARD 简介
- Run WordCount on Hadoop
- android 内置关系型数据库 SQLite
- service
- 当鼠标点击页面其他地方时隐藏某个元素
- Android学习之Application类
- myeclipes忽略js错误,取消验证
- 新版eclipse编写Android 时经常报的错误 -support-v7
- Python 错误 UnicodeEncodeError: 'ascii' codec can't encode character 的解决方案
- UITableViewCell重用导致动态添加控件时cell乱掉的问题
- 字符串去掉肩括号和空格
- oracle归档模式和非归档模式的区别
- QT网络相关