Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как заставить функцию JS понимать названия с номерами по порядку? (https://javascript.ru/forum/misc/6735-kak-zastavit-funkciyu-js-ponimat-nazvaniya-s-nomerami-po-poryadku.html)

Lukas 18.12.2009 18:42

как заставить функцию JS понимать названия с номерами по порядку?
 
Сразу прошу прощения за, скорее всего, неправильно сформулированный вопрос...:-?

Использую на сайте скрипт увеличения картинок на основе Jquery.

<HEAD><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><TITLE>zoomi</TITLE>
<SCRIPT type="text/javascript" src="./zoomi_files/jquery.pack.js"></SCRIPT>
<SCRIPT type="text/javascript" src="./zoomi_files/zoomi.js"></SCRIPT>
<SCRIPT type="text/javascript">

// <!-- Examples of dynamically calling zoomi -->
$(function(){

  $('#zoomme img').zoom1().click(function(){
    $(this).zoom2().fadeIn().click(function(){
      $(this).hide(); return false; })
    .end().parent().addClass('red'); return false; });
});

</SCRIPT>
</HEAD><BODY>

<!-- Dynamically attach zoomi -->
<A id="zoomme" href="#" title="Click me to toogle zoomi">
<IMG src="./zoomi_files/sexy.jpg" alt="http://www.sunsean.com/zoomi/sexy.jpg">
</A>

<A id="zoomme" href="#" title="Click me to toogle zoomi">
<IMG src="./zoomi_files/sexy.jpg" alt="http://www.sunsean.com/zoomi/sexy.jpg">
</A>
</BODY>


Не получается заставить вторую картинку тоже увеличиваться... Получается только, если во втором случае заменить <A id="zoomme" на <A id="zoomme2" и изменить вот так сам скрипт:
<SCRIPT type="text/javascript">

$(function(){

  $('#zoomme img').zoom1().click(function(){
    $(this).zoom2().fadeIn().click(function(){
      $(this).hide(); return false; })
    .end().parent().addClass('red'); return false; });

  $('#zoomme2 img').zoom1().click(function(){
    $(this).zoom2().fadeIn().click(function(){
      $(this).hide(); return false; })
    .end().parent().addClass('red'); return false; });
});


Вопрос: как заставить функцию понимать названия с номерами по порядку? Или выход один - определять для каждого изображения новое имя функции?

e1f 18.12.2009 19:17

Навскидку, как-то так:
$('img').each(function() {
    $(this).zoom1().click(function() {
        $(this).zoom2().fadeIn().click(function() {
            $(this).hide();
            return false;
        }).end().parent().addClass('red');

        return false;
    });
});

Возможно, сработает и без each, это уже зависит от реализации плагина zoomi

Lukas 19.12.2009 13:01

Вложений: 1
Не работает...:(

Вот странички с примером:
Вложение 255

Может что-нибудь еще придумаете?

На моей странице таких изображений штук 50 и я для каждого прописываю новую функцию Zoome#, где # - номер по порядку, но это увеличивает размер страницы...


Часовой пояс GMT +3, время: 21:50.