Jquery / Jquery mobile - как определить, приводит ли нажатая ссылка к изображению или веб-сайту? - PullRequest
0 голосов
/ 20 сентября 2011

Я пытаюсь объединить два плагина JQM и застреваю в разрешении конфликтов.


У меня есть следующее, которое при нажатии активирует плагин Photoswipe :

<a class="swipeMe" href="../IMG/samples/166.png" rel="external"><img src="...

Во втором плагине splitview по нажатой ссылке с rel = "external" запускается функция JQM HttpCleanup:

httpCleanup = function(){
    window.setTimeout( function() { removeActiveLinkClass( true ); }, 200 );
    };

, которая дает мне "removeActiveLinkClass не определен" ошибка.Другая ошибка, которую я получаю, заключается в закрытии Photoswipe, где firebug говорит мне: «$ .mobile._handleHashChange не является функцией»

Поэтому я предполагаю, что мне нужно добавить выражение if, которое говорит: «еслинажата ссылка - это изображение / не веб-страница, пропустите HTTPCleanup и не делайте hashChange ".

Как это сделать в Jquery или JqueryMobile?

РЕДАКТИРОВАТЬ: большекод ..

Я думаю, что это соответствующие части кода

$(document).bind( "click", function(event) {

httpCleanup = function(){
    window.setTimeout( function() { removeActiveLinkClass( true ); }, 200 );
    };      

    var isExternal = useDefaultUrlHandling || ( $.mobile.path.isExternal( href ) && !isCrossDomainPageLoad );

    if( isExternal ) {           
   httpCleanup();
   //use default click handling
   return;
       }

Ответы [ 2 ]

0 голосов
/ 20 сентября 2011

вы можете просто добавить класс к тегам привязки при рендеринге и проверить, есть ли у него этот класс css, в вашей функции очистки

0 голосов
/ 20 сентября 2011

Попробуйте:

$.ajax({
   type: 'GET',
   url: $("a.swipeMe").attr("href"),
   complete: function(resp){
        ct = resp.getResponseHeader('Content-Type');
        }
   });

Если ct=="image/png", у вас есть изображение PNG.

...