#jquery #jquery-plugins #prettyphoto
#jquery #jquery-плагины #prettyphoto
Вопрос:
У меня есть этот фрагмент, который находится в моем основном файле js, который использует весь наш сайт
$("a[rel^='prettyPhoto']").prettyPhoto({
theme: 'light_square',
showTitle: false,
allow_resize: true
});
проблема в том, что на некоторых страницах prettyPhoto не определено и вызывает ошибку в firebug, поэтому я подумал, что попробую это
if(typeof prettyPhoto=="undefined"){
//do nothing
}else{
$("a[rel^='prettyPhoto']").prettyPhoto({
theme: 'light_square',
showTitle: false,
allow_resize: true
});
}
но это всегда выполняется как true, даже на страницах, на которых доступно prettyPhoto….есть идеи
Ответ №1:
Попробуйте это:
if (typeof $.fn.prettyPhoto == "function") {
// we have prettyPhone on the page
}
Комментарии:
1. Вы могли бы даже просто сделать
if ($.fn.prettyPhoto)
, хотя это немного слабее.2. Что такое $.fn. и можете ли вы использовать $.fn. для большинства элементов jquery, чтобы убедиться, что они доступны
3.
$.fn
это прототип функции jQuery, место, где определены все методы экземпляра (все, что вы используете в коллекциях элементов, например$('p').text()
,$('p').each()
, и т.д.).
Ответ №2:
если вы создаете console.log(prettyPhoto) на странице, на которой, как вы знаете, есть prettyPhoto, что это значит? объект?
Если да, то вы делаете
if(typeof prettyPhoto === 'object'){
//do your stuff here.
}