【问题标题】:Explanation of touch event jQuery function触摸事件jQuery函数说明
【发布时间】:2014-02-18 19:32:15
【问题描述】:

根据我不久前在 SO 上找到的内容,我编写了一个非常适合移动设备的函数。

    jQuery(document).on('touchstart', function(event) {
        if ( !jQuery(event.target).closest("#peopleMenu").length) {
            jQuery("#peopleMenu").fadeOut();
       } 
    });

我发现的部分是在“if”语句中,这让我有点想不通。

意思是如果目标触摸事件在 #peopleMenu 上,它将保持打开状态,如果触发则关闭。 if 语句归结为:

if (!1) {
    //false - understand this.
}

if (!0) {
    //true - hmmm.
}

我的问题基本上是这是一个常见的编程范式,一个奇怪的 js 功能,还是比它需要的更棘手?谢谢。

【问题讨论】:

    标签: javascript jquery mobile if-statement touch


    【解决方案1】:

    这在许多语言中都很常见。 JavaScript 中的所有内容都有一个固有的布尔值,通常称为真或假。(例如 0 或空字符串)。所以在这种情况下,如果长度返回为 0,则 if 语句为假。如果您想了解更多,这里有一篇关于这个主题的精彩文章,因为它与 Javascript 相关:Truthy/Falsy

    【讨论】:

      【解决方案2】:

      这很常见,这意味着如果您触摸 #peopleMenu 或其子代以外的其他东西,请做点什么。

      0 是一个假值,而其他所有整数都是真值。

      使用 bang (!) 反转值,!true == false!false == true

      jQuery 的.length 属性是知道选择了多少元素的方法。 0 表示没有。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-30
        • 1970-01-01
        • 2016-03-02
        • 1970-01-01
        • 1970-01-01
        • 2011-03-20
        • 1970-01-01
        相关资源
        最近更新 更多