Что не так с моим скриптом переключения HTML / jQuery? - PullRequest
0 голосов
/ 27 июля 2010

У меня есть эта функция в скрипте в шапке (генерируется Fireworks, он работает):

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; 
document.MM_sr=new Array;
   for(i=0;i<(a.length-2);i+=3)  
      if ((x=MM_findObj(a[i]))!=null){
         document.MM_sr[j++]=x; 
         if(!x.oSrc) 
            x.oSrc=x.src; 
            x.src=a[i+2];
      }
}

Затем у меня есть таблица с кучей td и trs, включая эту:

   <td rowspan="2"><a href="javascript:;" onclick="MM_swapImage('slice1_s1','','images/slice1_s2.jpg',1);"><img name="slice1_s1" src="images/slice1_s1.jpg" width="146" height="87" border="0" id="slice1_s1" alt="" /></a></td>

Затем, после того, как таблица закончилась, я поставил следующий сценарий:

<script>
$("img").toggle(function(){
   $(this).MM_swapImage('slice1_s1', '', 'slice1_s2.jpg', 1); 
}, function(){
   $(this).MM_swapImage('slice1_s1', '', 'slice1_s1.jpg', 1); 
});
</script>

Таблицы и все это просто способ, которым Adobe Fireworks нарезает материал для Интернета, так что все это генерируетсяхорошо.

Вот что я хочу, чтобы: Когда щелкнуло изображение, я хочу, чтобы оно изменило цвет (это второе изображение, которое у меня есть, slice1_s2.jpg).При повторном нажатии я хочу, чтобы он вернулся к оригиналу.Когда я проверяю это, ничего не происходит.Есть предложения?

Ответы [ 3 ]

0 голосов
/ 27 июля 2010

Следует отметить, что событие OnClick, прикрепленное к вашему тегу A, будет иметь приоритет перед вашим последующим сценарием;Я не думаю, что ваш toggle () когда-нибудь сработает, основываясь на этом.Попробуйте удалить событие OnClick и посмотрите, не поможет ли это.

0 голосов
/ 27 июля 2010

Комментарий Феликса Клинга, я считаю, правильный. Я не могу сказать наверняка, так как я не могу видеть весь код, который вы используете - но это имеет смысл. Я взял твой код и сделал макет локальной версии. Я получил ошибку, когда $(this).MM_swapImage был вызван, говоря, что объект не был определен. Как только я удалил $(this)., я получил другую ошибку в MM_swapImage (потому что у меня нет всего кода), но это указывает на корень вашей проблемы.

Но у меня есть вопрос: почему бы просто не использовать метод jQuery toggle для замены изображения? Вы можете просто сделать это:

$("img").toggle(function(){
    $(this).attr("src", "slice1_s2.jpg");
}, function(){
    $(this).attr("src", "slice1_s1.jpg");
});

Не уверен, нужно ли вам использовать MM_swapImage или нет.

Феликс Клинг должен получить правильный ответ. Я просто хотел добавить toggle, чтобы поменять ваше изображение.

Надеюсь, это поможет!

0 голосов
/ 27 июля 2010
<script>
$("img").toggle(function(){
   $(this).MM_swapImage('slice1_s1', '', 'images/slice1_s2.jpg', 1); 
}, function(){
   $(this).MM_swapImage('slice1_s1', '', 'images/slice1_s1.jpg', 1); 
});
</script>

Вы пытались указать свой путь или изображение? "изображения /"

...