Как сравить путь

shurek

Новичок
Пример кода
PHP:
<a href="/content_files/user/gal/brigantina/brig_000(2).jpg" onclick="return hs.expand(this,{dimOpacity:0.75});" class=" "><img src="/content_files/user/gal/brigantina/brig_000(2).jpg" alt="" width="200" height="150"></a>


Вопрос как луче сравнить путь для ссылки и путь для картинки. Если они равны то добавить для ссылки параметр

PHP:
onclick="return hs.expand(this,{dimOpacity:0.75});
 

shurek

Новичок
До этого было реализовано вот так

PHP:
preg_replace('/<a[^>]*href=["\']([^\'"]*)["\'][^>]*>(<img[^>]*>)<\/a>/', 
'<a href="$1" onclick="return hs.expand(this,{dimOpacity:0.75});">$2</a>', 
$PageRow['content']);
но сравнения путей там не было всем ссылкам добавлял параметр

PHP:
onclick="return hs.expand(this,{dimOpacity:0.75});
 

Yaponchick

Новичок
http://habrahabr.ru/post/69149/

Специально для такого уникума, на русском языке нашёл. Если ты не сможешь воспользоваться маном и гайдом, то у тебя проблема со знанием пхп, тогда тебе рано заменять - штудируй ман :D
 

AmdY

Пью пиво
Команда форума
это в три строчки на javascript делается на стороне клиента, зачем вам php?
 

shurek

Новичок
Всем спасибо сдела вот так

PHP:
$('body').on('click', 'a', function(e) {
    e.preventDefault();
    var me = $(this);
    if (me.attr('href') === me.children('img').attr('src')) {
        alert('match');
        return hs.expand(this,{dimOpacity:0.75});
    }
})
 
  • Like
Реакции: AmdY

keltanas

marty cats
А зачем ты повесил событие на body?
И почему ты думаешь, что у всех ссылок на странице всегда будет дочерний img?
 

AmdY

Пью пиво
Команда форума
Перенёс в нужную тему.
shurek Спасибо, что оставил здесь решение.
 

Yaponchick

Новичок
PHP:
$("a > img").each(function(){
  var $img = $(this);
  var $a = $img.parent();

  if ($a.attr("href") == $img.attr("src")) {
    $a.click(function(e){
      e.preventDefault();
      
      hs.expand($a[0], {
        dimOpacity: 0.75
      });
    });
  }
})
 
Сверху