2013-03-11 2 views
-1

Полностью переработанный для ясности и простотыИспользование Jquery Функции в JavaScript

Я использую поднять зум (объектив функция масштабирования), как показано на on this website. У меня есть Radrotator, заполненный двоичными изображениями, которые я дал событие onclick на DataBound ротатора. Onclick Я хочу изменить главное намного большее изображение над Rotator на основе изображения, которое они нажали, с Rotator на всех клиентских сайтах.

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

<img id="zoom_07" runat="server" src="small.jpg" alt="image" /> 

Ниже приведены две функции javascript. Первый использует Elevatezoom для увеличения изображения, а второй - при нажатии на двоичные изображения в ротаторе.

<script type="text/javascript" > 
jQuery(document).ready(function ($) { 
    $("#zoom_07").elevateZoom({ 
     zoomType: "lens", 
     lensShape: "round", 
     lensSize: 200 
    }); 
}); 

function changeImage(url) { 

    var img = document.getElementById('zoom_07'); 
    img.src = url; 
    img.setAttribute('data-zoom-image', url); 
} 

Как я могу изменить изображение в стороне клиента лупой? Спасибо за любую помощь по этому вопросу.

+0

Ваш вопрос немного неясен, вы говорите: «Как я могу назвать эту функцию jquery функцией JAVASCRIPT?» Неясно, какую функцию jQuery вы имеете в виду. Из кода, который вы показали, нет ничего особенного, что я вижу, если только что-то не осталось. См. Раздел http://api.jquery.com/ready/ в разделе «Слияние пространства имен jQuery». Все, что делает ваша готовая функция, - это преобразование переменной jQuery в псевдоним в метод обработчика. Если вы взяли код из функции ready и заменили $ на jQuery, он должен работать в вашей функции javascript. – Rich

+0

То, что я надеюсь сделать, это вызвать $ ("# zoom_07"). ElevateZoom внутри функции changeImage b/c изображение с изменением масштаба изображения не меняется правильно, поскольку изображение img.src изменилось. Я немного изменил свой вопрос. Дайте мне знать, если все еще неясно. – Eric

+1

На основании вашего нового описания у кого-то еще была эта проблема и была получена последняя версия: http://www.elevateweb.co.uk/q/discussion/5/rotatingsliding-images-zoom-on-the-container-div - иначе , Я думаю, я бы порекомендовал вам отправить вопрос в службу поддержки сайтов; - Вероятно, у кого-то здесь не будет желания отлаживать код подключаемого модуля elses. –

ответ

0

This is the solution Я пошел. Я создал теги изображений в ротаторе (который привязан к двоичным изображениям) и изменил основное изображение при щелчке этих изображений. Мне, конечно, пришлось преобразовать двоичные образы в обычные изображения, а затем сохранить их.

0

jQuery is JavaScript, поэтому вы уже вызываете его в функции JavaScript. это просто анонимная функция на документ готов.

function changeImage(url) { 
    var img = document.getElementById('zoom_07'); 
    img.src = url; 
    img.setAttribute('data-zoom-image', url); 

    $(img).elevatedZoom({ 
     zoomType: "lens", 
     lensShape: "round", 
     lensSize: 200 
    }); 
} 

Приведенный выше код ваш обработчик события, который был обновлен, чтобы показать вам, были бы вы хотите, чтобы вызвать функцию для обновления зума.

+0

Спасибо! я попробую это – Eric

+0

Изображение данных-масштабирования по-прежнему не обновляется правильно. Я думал, что это будет исправление. – Eric

+0

Я делаю предупреждение после того, как я установил URL-адрес масштабируемого изображения, и атрибут действительно меняется, но он не меняется для пользователя. Увеличительное стекло отображает только предыдущее увеличенное изображение, а изображение, определенное в img.src, действительно изменяется. – Eric

0

Я сделал некоторые широкие предположения о том, что вы щелкаете и источник URL здесь:

(function ($) { 
    // I invented this, use your element 
    $('#clickemeid').click(function() { 
     // I invented this "someattr" attribute, set to where you get that 
     var url = $(this).attr('someattr'); 
     $("#zoom_07").attr('src', url).attr('data-zoom-image', url).elevateZoom({ 
      zoomType: "lens", 
      lensShape: "round", 
      lensSize: 200 
     }); 
    }); 
})(jQuery); 

сейчас, делая предположение, вы хотите, чтобы переключаться между ЦСИ и данными-зумом-изображениями

(function ($) { 
    $('#zoom_07').click(function() { 
     var me = $(this); 
     var zoomurl = me.attr('data-zoom-image'); 
     var origurl = me.attr('src'); 
     me.attr('data-zoom-image', origurl).attr('src', zoomurl).elevateZoom({ 
      zoomType: "lens", 
      lensShape: "round", 
      lensSize: 200 
     }); 
    }); 
})(jQuery); 
+0

Ни один из них не работал. Пожалуйста, см. Мой пересмотренный вопрос, поскольку я попытался сделать его более понятным. – Eric

Смежные вопросы