jquery .attr ("alt") == 'имя' - PullRequest
       2

jquery .attr ("alt") == 'имя'

0 голосов
/ 01 марта 2010

Может ли кто-нибудь помочь мне сообщить мне, что не так со следующим кодом?

$(document).ready(function(){
    $("img").attr("alt")=='minimize'.click(function(){
      alert("he");
     });
});

спасибо.

Добавление : Извините, ребята, я пытаюсь добавить событие к изображению внутри таблицы, поэтому при щелчке по нему происходит сворачивание нужного элемента div.

У меня тут несколько проблем.

1.- все таблицы и div используют один и тот же класс. 2.- это может быть минимум две таблицы и деления. 3.- первая таблица не должна быть в состоянии кликать, только ее изображения (для показа и скрытия div под) 4. Остальные таблицы должны быть в состоянии щелкнуть мышью по всей таблице, чтобы показать и скрыть div с помощью ползункового переключателя. 5. Остальные таблицы также имеют два изображения для показа с slideDown и slideUp.

То, что у меня это работает, но не полностью.

Еще раз.

Спасибо.

Пока это то, что у меня есть.

<script type="text/javascript">
 $(document).ready(function(){

   $(".heading:not(#Container1)").click(function(){
   var c = $(this).next(".container");
   c.slideToggle("slow");
   });


   });

   $(document).ready(function(){
   $("img[alt='min']").click(function(){
   var c = $(this).next(".container");
   c.slideToggle("slow");

   });

   $("img[alt='max']").click(function(){
   var c = $(this).next(".container");
   c.slideToggle("slow");

   });
   });
</script>

<html>
  <head></head>
  <body>
    <table class="heading" id="container1">
      <tr>
        <td>heading1</td>
        <td><img alt='min'/><img alt='max'/></td>
     </tr>
   </table>
   <div class='container'>Container1</div>
   <table class="heading">
     <tr>
       <td>heading2</td>
       <td><img alt='min'/><img alt='max'/></td>
      </tr>
   </table>
   <div class='container'>Container2</div>
   <table class="heading">
     <tr>
       <td>heading3</td>
       <td><img alt='min'/><img alt='max'/></td>
     </tr>
   </table>
   <div class='container'>Container3</div>
 </body>
</html>

Ответы [ 4 ]

7 голосов
/ 01 марта 2010

Вам нужно использовать селектор атрибута, чтобы не получить атрибут и не сравнить его.

$(document).ready(function(){ 
    $("img[alt='minimize']").click(function(){ 
      alert("he"); 
     }); 
});
4 голосов
/ 01 марта 2010
$(document).ready(function(){
    $("img[alt='minimize']").click(function(){
        alert("he");
    });
});

РЕДАКТИРОВАТЬ

$(function() {
    $('img[alt='min'], img[alt='max']').click(function() {
        var container = $(this).parent('table').next('div.container');

        if ( $(this).attr('alt') == 'min' )
            container.slideUp('slow');

        if ( $(this).attr('alt') == 'max' )
            container.slideDown('slow');

        return false;
    });

    $('table.heading:not(:first)').click(function() {
        $(this).next('div.container').slideToggle('slow');

        return false;
    });
});
2 голосов
/ 01 марта 2010

Атрибут alt не является способом фильтрации ваших изображений. Он предназначен для размещения альтернативного контента, когда изображение не может быть отображено (не найдено, нежелательно для пользователя, отсутствует экран и т. Д.)

Вместо этого вы должны использовать атрибут class, чтобы различать ваши изображения так, как вы хотите.

Ваш код становится:

HTML

<img src="..." class="minimize" alt="A beautiful image">

Javascript

$(document).ready(function(){
    $("img.minimize").click(function(){
        alert("he");
    });
});
1 голос
/ 01 марта 2010

Это не синтаксически правильно. Что ты пытаешься сделать? Может быть, это?

$(document).ready(function(){
  $("img[alt=minimize]").click(function(){
    alert("he");
   });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...