Передача информации divs - PullRequest
       15

Передача информации divs

0 голосов
/ 18 декабря 2009

У меня есть серия div с одинаковыми идентификаторами, за исключением уникального # в конце (cartbtn0, cartbtn1 и т. Д.). Я создал одну универсальную функцию, которая будет работать со всеми элементами div, используя подстановочный знак, но мне нужно иметь возможность захватить уникальный # div, по которому щелкнули, чтобы заменить 0 в # cartbox0: hidden. Может кто-нибудь, пожалуйста, помогите?

Код образца:

$("*[class^=cartbtn]").click(function () {  
    $(this).hide();  
    $('#cartbox0:hidden').fadeIn(2000);  
});

<div id="cartbtn0" class="cartbtn0">.....</div>  
<div id="cartbox0>" class="cartbox0" style="display:none;">.....<div>  

<div id="cartbtn1" class="cartbtn1">Text</div>  
<div id="cartbox1>" class="cartbox1" style="display:none;">Text<div>  

Ответы [ 4 ]

0 голосов
/ 18 декабря 2009

Я предполагаю, что вы динамически создаете эти div. Если это так, вы можете добавить к ним атрибут, который содержит номер. Затем вы можете получить доступ к этому атрибуту по щелчку и добавить его в конец класса. Это избавит вас от необходимости манипулировать строками с именами классов.

$("*[class^=cartbtn]").click(function () {  
    $(this).hide();
    var num = $(this).attr('ref');  
    $('#cartbox'+num+':hidden').fadeIn(2000);  
});

<div id="cartbtn0" class="cartbtn0" ref="0">.....</div>  
<div id="cartbox0" class="cartbox0" ref="0" style="display:none;">.....<div>  

<div id="cartbtn1" class="cartbtn1" ref="1">Text</div>  
<div id="cartbox1" class="cartbox1" ref="1" style="display:none;">Text<div>
0 голосов
/ 18 декабря 2009

Чтобы избежать необходимости манипулировать строкой (вы, конечно, могли бы сделать $(this).attr('id').substring(...), я бы сказал, что лучшим вариантом будет сделать:

$(this).find(':hidden').fadeIn(2000);

Это даст вам нажатый div, если он скрыт. Хотя я не совсем понимаю, почему вы хотели бы искать это, поскольку вы всегда прячете это прямо перед этим.

0 голосов
/ 18 декабря 2009

Попробуйте

$('#'  & this.id.replace('cartbtn','cartbox') + ':hidden').fadeIn(2000); 

вместо

$('#cartbox0:hidden').fadeIn(2000); 

, который должен взять div и заменить имя.

0 голосов
/ 18 декабря 2009

Вы можете использовать:

this.id

внутри обработчика кликов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...