【问题标题】:How do I check if prettyPhoto is defined如何检查是否定义了 prettyPhoto
【发布时间】:2011-10-12 20:42:46
【问题描述】:

我的主 js 文件中有这个 sn-p,我们整个网站都在使用它

$("a[rel^='prettyPhoto']").prettyPhoto({
        theme: 'light_square',
        showTitle: false,
        allow_resize: true
    });

那个问题是,在某些页面上,prettyPhoto 是未定义的,并导致萤火虫出错,所以我想我会试试这个

if(typeof prettyPhoto=="undefined"){
    //do nothing
}else{
    $("a[rel^='prettyPhoto']").prettyPhoto({
        theme: 'light_square',
        showTitle: false,
        allow_resize: true
    });
}

但这总是执行为真,即使在 prettyPhoto 可用的页面上也是如此......任何想法

【问题讨论】:

    标签: jquery jquery-plugins prettyphoto


    【解决方案1】:

    试试这个:

    if (typeof $.fn.prettyPhoto == "function") {
        // we have prettyPhone on the page
    }
    

    【讨论】:

    • 你甚至可以只做if ($.fn.prettyPhoto),虽然它有点松散。
    • 什么是 $.fn。你能用$.fn吗?在大多数 jquery 元素上以确保它们可用
    • $.fn 是一个 jQuery 函数原型,是定义所有实例方法的地方(您在元素的 集合 上使用的所有内容,例如 $('p').text()$('p').each()、等)。
    【解决方案2】:

    如果你在一个你知道有 prettyPhoto 的页面上执行 console.log(prettyPhoto),它说的是什么?一个对象?

    如果是这样,那么你会这样做

    if(typeof prettyPhoto === 'object'){
        //do your stuff here.
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-16
      • 2017-01-09
      • 1970-01-01
      • 2011-06-03
      • 2010-09-22
      • 2013-01-06
      • 1970-01-01
      • 2015-05-01
      相关资源
      最近更新 更多