sidarvik,
Вариант замены <!DOCTYPE HTML> <html> <head> <title></title> <meta charset="utf-8" /> <script src="http://code.jquery.com/jquery-latest.js"></script> <script> $(function(){ $('img.highslide').each(function(){ var bigImgLink = $(this).attr("onclick").replace(/[\s\S]+src:.(.*?jpg)[\s\S]+/,'$1') var a = $("<a/>").attr({'rel':'group1' , 'class' : 'fancybox' , 'href' : bigImgLink}) $(this).removeAttr("onclick").removeClass().wrap(a) }); alert($('body').html()); }); </script> </head> <body> <p class="fotoline"><img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/hurgada-.jpg'});}catch(e){}" src="/d/163953/d/180489406_5.jpg" width="180" height="120" alt="Хургада " border="0" /><img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/3170138978_07448bfbdf_o.jpg'});}catch(e){}" src="/d/163953/d/180488006_5.jpg" width="180" height="135" alt="3170138978_07448bfbdf_o" border="0" /><img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/egipet_1600.jpg'});}catch(e){}" src="/d/163953/d/109448406_5.jpg" width="180" height="135" alt="egipet_1600" border="0" /><img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/180489006_7.jpg'});}catch(e){}" src="/d/163953/d/180489006_5.jpg" width="180" height="135" alt="4064" border="0" /><img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/81.jpg'});}catch(e){}" src="/d/163953/d/109447006_5.jpg" width="180" height="135" alt="81" border="0" /></p> </html> |
<script src="http://code.jquery.com/jquery-latest.js"></script> <a rel="group1" href="/images/big_pic.jpg" class="fancybox"> <img src="http://javascript.ru/forum/images/smilies/smile.gif" alt="picture" border="0" height="150" width="200" /> </a> <script type="text/javascript"> $('a.fancybox').on('click',function(){ alert($(this).attr("href")); return false; }); </script> |
Цитата:
|
Цитата:
Я сама тоже как раз подумала про регулярные выражения... |
Deff,
простите, а это Цитата:
для чего? |
Цитата:
Тут "on" c 1.9 идет ========================== Сейчас код рабочий |
рони, я предложил сделать прокси для fancybox через фэйковый hs. ИМХО самое напрашивающееся и быстрое решение.
Deff, задача то совершенно другая. Нужно чтоб старый код для hs работал с fancybox. Цитата:
Всегда избегаю регулярки, если подругому никак или медленно. |
Цитата:
<!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" href="http://fancyapps.com/fancybox/source/jquery.fancybox.css?v=2.1.4" type="text/css" media="screen" /> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" src="http://fancyapps.com/fancybox/source/jquery.fancybox.pack.js?v=2.1.4"></script> <script> $(document).ready(function(){ $("p.fotoline").find("img").each(function(){ var href=$(this).attr('onclick').toString().replace(/^[\s\S]*?src:'([\s\S]*?)'[\s\S]*$/img,'$1'); $(this).removeAttr("class").wrap('<a rel="group1" class="gallery" href="'+href+'"></a>') $(this).parent().html($(this).parent().html().replace(/onclick=".*?"/i,'')); }); }); </script> <script type="text/javascript"> $(document).ready(function() { $("a.gallery").fancybox(); }); </script> </head> <body> <p class="fotoline"> <img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/hurgada-.jpg'});}catch(e){}" src="/d/163953/d/180489406_5.jpg" width="180" height="120" alt="Хургада " border="0"> <img class="highslide" onclick="try{hs.expand(this,{src:'http://www.holydieexplorer.com/wp-content/uploads/2011/07/pyramids-cairo-egypt-1600-1024x768.jpg'});}catch(e){}" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQm0lSr3gjMZ12XQh6m8_6S2kfOEU2ryue9XLfByz3XIFuj-mMmcqjcXcyv" width="180" height="135" alt="3170138978_07448bfbdf_o" border="0"> <img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/egipet_1600.jpg'});}catch(e){}" src="/d/163953/d/109448406_5.jpg" width="180" height="135" alt="egipet_1600" border="0"> <img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/180489006_7.jpg'});}catch(e){}" src="/d/163953/d/180489006_5.jpg" width="180" height="135" alt="4064" border="0"> <img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/81.jpg'});}catch(e){}" src="/d/163953/d/109447006_5.jpg" width="180" height="135" alt="81" border="0"> </p> </body> </html> |
http://jsfiddle.net/danya_postfactum/YDPQy/
К сожалению в моем варианте не будет работать группировка. |
Все трое мастерили одно и тоже )))
<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <body> <link rel="stylesheet" href="http://fancyapps.com/fancybox/source/jquery.fancybox.css?v=2.1.4" type="text/css" media="screen" /> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" src="http://fancyapps.com/fancybox/source/jquery.fancybox.pack.js?v=2.1.4"></script> <script language="JavaScript" type="text/javascript"> var hs = { expand: function(element, options) { $.fancybox( {href : options.src, title : 'НАДОЖЕ РАБОТАЕТ', openEffect : 'elastic', closeEffect : 'elastic'} ); } }; </script> <img class="highslide" onclick="try {hs.expand(this,{src:'http://farm8.staticflickr.com/7152/6394238505_c94fdd1d89_b.jpg'});}catch(e){}" src="http://farm8.staticflickr.com/7152/6394238505_c94fdd1d89_m.jpg" width="200" height="150" alt="picture" border="0" /> </body> </html> |
Часовой пояс GMT +3, время: 17:06. |