【问题标题】:how to check if the transition name is valid in jquery.mobile?如何检查过渡名称在 jquery.mobile 中是否有效?
【发布时间】:2011-08-30 17:24:29
【问题描述】:

我有一个 javascript 方法,它接受转换名称作为参数并将其传递给 jquery.mobile 以更改页面:

$.mobile.changePage(renderedPage, { transition: transition, reverse: reverse });

现在我需要检查传递给我的方法的转换名称是否是有效的转换。 (这是因为无效的过渡名称会导致 .changePage() 方法中断)

我浏览了 jquery.mobile 的源代码,但找不到包含所有转换名称或转换处理程序的集合。

谁有办法做到这一点?

【问题讨论】:

    标签: javascript jquery jquery-mobile transition


    【解决方案1】:

    在 jquery mobile 中,只有六个转换可用。您可以确保给定的转换在可用转换的数组中。 http://jquerymobile.com/demos/1.0a4.1/docs/pages/docs-transitions.html

    var transitionArr = ["slide","slideup","slidedown","pop","fade","flip"];
    $.mobile.changePage(renderedPage, {
      transition: $.inArray(transition,transitionArr) == -1 ? transition : "slide",
      reverse:reverse
    });
    

    但是,我无法在核心中找到直接引用这些转换的数组或对象,以便我们可以用来动态构建此数组。

    【讨论】:

    • +1 for $.inArray,但你为什么要在 transitionArr 中查找“reverse”?这只是一个布尔值。
    • 代码中的另一个问题:$.inArray() 返回数组中元素的索引,因此当数组中不存在转换时满足条件(即 $.inArray() 返回 -1 )。
    • sry 关于反向检查,我没有在 jquery mobile 中进行任何开发并假设错误。固定的。至于 $.inArray 返回 -1,-1 是一个 false-y 值,所以如果它出现 -1 它将默认为“滑动”。如果您想要更准确的检查,可以使用 !== -1
    • 这是错误的,js中的任何数值都假定为“true”,除非它等于“0”。看这里:jsfiddle.net/Tasba
    • 对不起,你当然是对的。我不确定我从哪里得到的。
    猜你喜欢
    • 2020-08-20
    • 2017-10-22
    • 2020-10-15
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    相关资源
    最近更新 更多