学习zepto源码时,发现一个很佩服的写法。

关键点在三元选择符。

首先,假定settings是有传入参数的,此时settings会进行隐式强制类型转换为布尔值,如果为真,元素显示,如果为假,元素隐藏。无可厚非,最具有技术性的(我自己认为的),是在未传入settings参数的时候。

解析一下这段,如果settings!==undefined 取传入的settings参数,即进行到上面提到的settings有参数的步骤。

如果没传参数,即settings === undefined ,此时,会直接取当前元素的display的值,判断是否为‘none’,如果为none,条件结果为真,如果不是‘none’,条件结果为假。然后进行后面的显示隐藏。

相当于一条js代码进行了

1、判断是否传递参数,

2、传递参数, 取值settings,判断settings,强制转换布尔值,

3、未传递参数,取当前元素的display的值,是否为none,也转换为布尔值。

zepto--toggle函数的更多相关文章

  1. 关于jQuery中toggle()函数的使用

    今天遇到一个有趣的例子,将它记录下来. 一个一级菜单,里边有一个二级菜单,二级菜单是通过锚点来链接页面元素的.想要实现的效果是当点击锚点时,页面链接到相应锚点,同时二级菜单隐藏,再点击一级菜单时,继续 ...

  2. jquery1.9以上版本如何使用toggle函数

    toggle() 方法用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件. 但是在1.9及以上的版本中已经删除了该功能. 感觉这个功能还是不错的,以下来自网上搜集,可以在js中 ...

  3. toggle函数

    $(function() { $('.love').toggle(function() { $(this).attr("src", "images/loved.png&q ...

  4. zepto - toggle

    <input type="text" value="123456789" /> <div id="too_long"> ...

  5. jquery的toggle()函数,显示/隐藏交替

    <!DOCTYPE html> <html lang="en"> <head> <script src="jquery.js&q ...

  6. zepto学习之路--核心函数$()的实现

    $()可以说是jquery的精华了,为dom操作带来了极大的灵活和方便.zepto号称“移动版的jquery”,那么它是怎么来实现这个核心函数呢?我们来详细探讨下. 1.首先,我们看下zepto中它是 ...

  7. zepto源码--核心方法6(显示隐藏)--学习笔记

    在不引入zepto插件模块fx_metho其他ds的情况下,zepto默认的显示隐藏的函数只有show, hide, toggle,这里解释有个前提条件,就是没有引入zepto的fx_methods插 ...

  8. Zepto源码解读

    /*******************************************************************************Zepto核心和dom操作******* ...

  9. 使用toggle()方法进行显示隐藏

    这是一个示例: <html> <head> <script type="text/javascript" src="http://keley ...

  10. 学习zepto.js(Hello World)

    Zepto是一个轻量级的针对现代高级浏览器的JavaScript库, 它与jquery有着类似的api. 如果你会用jquery,那么你也会用zepto. 昨天听说了zepto.js,正好最近也比较闲 ...

随机推荐

  1. Ubuntu14.04 Server amd64 配置 Apache+MySQL+Django

    写在前面 因为不同版本的apache等软件文件夹和配置文件的名称设置都不尽相同,网上累死累活查了好多个博客就没一个能成功配出来的. 所以本文也不一定能帮到你,请在确定对自己有用之前不要盲目转载,以免给 ...

  2. 一只小蜜蜂...[HDU2044]

    一只小蜜蜂... Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  3. ashx 集成于Ihandle 简易 高性能 web

    不用搞MV4..如果你用.ashx写的后台..自己加一个switch case就实现了路由...更方便,还不用配置   scaffold 不是dynamic data里面的东西吗   现在我全是ash ...

  4. codeforces round #201 Div2 A. Difference Row

    #include <iostream> #include <vector> #include <algorithm> using namespace std; in ...

  5. TYVJ P1056 能量项链 Label:环状区间DP

    做题记录:2016-08-16 20:05:27 背景 NOIP2006 提高组 第一道 描述     在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头 ...

  6. 【COGS & USACO Training】710. 命名那个数字(hash+水题+dfs)

    http://cojs.tk/cogs/problem/problem.php?pid=710 近日开始刷水... 此题我为了练一下hash...但是hash跑得比暴力还慢.. 不言而喻... #in ...

  7. Swift -- 官方文档Swift-Guides的学习笔记

    在经历的一段时间的郁闷之后,我发现感情都是虚伪的,只有代码是真实的(呸) 因为看了swift语法之后依然不会用swift,然后我非常作死的跑去看官方文档,就是xcode里自带的help>docu ...

  8. checking在浏览器为应用缓存查找更新时触发

    离线的Web应用,就是在设备不能上网的时候还能运行应用.html5把离线应用作为重点,主要是开发人员的心愿.离线应用的开发的步骤有:首先应该知道设备是否能够上网;然后应该还能访问一定的资源(如图像.C ...

  9. Net-Speeder为OpenVZ加速

    VPS购买地址 1. net-speeder安装 wget https://coding.net/u/njzhenghao/p/download/git/raw/master/net_speeder- ...

  10. NBOJv2 1034 Salary Inequity(DFS序+线段树区间更新区间(最值)查询)

    Problem 1034: Salary Inequity Time Limits:  10000 MS   Memory Limits:  200000 KB 64-bit interger IO ...