2012-07-01 3 views
1

Я надеюсь, что это простая проблема синтаксиса.
У меня есть несколько элементов на странице. При щелчке идентификатор каждого элемента должен быть передан в jquery. Это приведет к появлению непрозрачного слоя с более подробной информацией. Я изо всех сил пытаюсь получить значение id в скрипте.Передача идентификационных параметров функции

Помогите пожалуйста?
Это часть формы:

<ul class="foodmenu"> 
    <li class="foodmenuitems"><img src="images/classic.png" id="classic" /></li> 
    <li class="foodmenuitems"><img src="images/blue.png" id="blue"/></li> 
</ul> 

и сценарий:

$(document).ready(function() { 
    $(".food-item-details").hide(); 
    $(".foodmenuitems").click(function() { 
     $(".food-item-details").hide(); 
     var foodItem = $(this).value; 
     $(foodItem).show('slow'); 
    }); 
    $(".close").click(function() { 
     $(".food-item-details").hide('slow'); 
    }); 
}); 

Любые советы с благодарностью получил!

ответ

4

Возможно, вы хотели бы получить var foodItem = '#' + this.id; - только входные данные формы имеют value.

Однако это все еще не может работать, поскольку идентификаторы должны быть уникальными. Вы можете легко исправить с помощью атрибутов данных, хотя:

<ul class="foodmenu"> 
    <li class="foodmenuitems"><img src="images/classic.png" data-item="classic" /></li> 
    <li class="foodmenuitems"><img src="images/blue.png" data-item="blue"/></li> 
</ul> 
$(document).ready(function() { 
    $(".food-item-details").hide(); 
    $(".foodmenuitems").click(function() { 
     $(".food-item-details").hide(); 
     var foodItem = $(this).data('item'); 
     $('#' + foodItem).show('slow'); 
    }); 
    $(".close").click(function() { 
     $(".food-item-details").hide('slow'); 
    }); 
}); 

Этот код теперь отображает элемент с идентификатором, указанным в data-item при нажатии его.

+0

«Однако это все еще не может работать, поскольку идентификаторы должны быть уникальными». Я не понимаю, почему - «классический» и «синий» кажутся мне уникальными. –

+0

@ AnthonyGrist: Он пытается показать еще один элемент, основанный на этом ID. И из кода, который он опубликовал, у него нет префикса для целевых элементов, поэтому они, скорее всего, имеют тот же идентификатор, что и элемент меню. – ThiefMaster

+0

Ах, конечно. Видимо, я не совсем сегодня. –

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