JQuery селектор: передать идентификатор из массива в функцию - PullRequest
1 голос
/ 21 мая 2010

У меня есть список предметов

<div id="item1">somestuff</div>
<div id="item2">somestuff</div>
<div id="item3">somestuff</div>

Когда кто-то нажимает на одну из них, мне нужно предпринять некоторые действия на основе идентификатора (числа). Допустим, скрыть это.

Как сделать функцию общей и как передать идентификатор в функцию?

$(document).ready(function()
{
$("#item-howcanImakethisselectorgeneric?").click(function () { 
  $("#item-andhowcanIpasshteidintohere?").hide();
}
}

Я новичок в javascript / jquery, любая помощь (включая rtfm) приветствуется.

Ответы [ 2 ]

1 голос
/ 21 мая 2010
<div id="item1" class="mygenericClass">somestuff</div>

<div id="item2" class="mygenericClass">somestuff</div>

<div id="item3" class="mygenericClass">somestuff</div>
$(document).ready(function() 
{ 
  $(".mygenericClass").click(function () {  
    //if you want the id then $(this).id
    //if you just want to hide the clicked element then
    $(this).hide(); 
  }); 
} 
0 голосов
/ 21 мая 2010

попробуйте это:

<div id="item1" class="stuff">somestuff</div>
<div id="item2" class="stuff">somestuff</div>
<div id="item3" class="stuff">somestuff</div>

JS:

$(document).ready(function()
{
   $("#item1, #item2, #item3").click(function () { 
     $(this).hide();
   }
}

или даже лучше:

$(document).ready(function()
{
   $("div.stuff").click(function () { 
     $(this).hide();
   }
}

или это, если вы будете динамически добавлять дополнительные элементы div на страницу после загрузки и не хотите явно добавлять обработчики событий

$(document).ready(function()
{
   $("div.stuff").live("click", function () { 
     $(this).hide();
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...