2015-05-18 2 views
0

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

HTML - петля

<td> <div> Add 2nd color </div> </td> 
        <td style="min-width:121px;position:relative;"> 
        '.$pop['pop3'].' 
         <div id= "'.$i.'" class="btn save_img"> Choose image </div> 

ЯШ:

$('.save_img').click(function(){ 

     onChooseImageClick(); 
    }); 

    function onChooseImageClick() 
    { 
     var rowId = $('.save_img').closest('tr').attr('row_id'); 
     alert(rowId); 

предупреждение дает мне всегда номер 1, независимо от того, какую кнопку я нажимаю, все точки не искать проблемы? как я пробовал почти все, и я не знаю, где продолжать искать.

+0

$ ближайший (' тр ') атр (' ROW_ID'); ближайший: "Описание: Для каждого элемента в наборе получите первый элемент, который соответствует селектору, путем тестирования самого элемента и прохождения его предков в дереве DOM." всегда будет выбирать первый элемент, так как вы не ссылаетесь на элемент с кликом, но для всех элементов, которые имеют класс «ближайший» –

ответ

2

Чтобы увидеть ближайший к отелю tr щелчок save_img, вам необходимо знать, какой элемент был нажат. this внутри обработчик щелчка относится к элементу целевого ручки (save_img элемента здесь), так что передать, что onChooseImageClick затем использовать эту ссылку элемента, чтобы найти tr элемент

$('.save_img').click(function() { 

    onChooseImageClick(this); 
}); 

function onChooseImageClick(el) { 
    var rowId = $(el).closest('tr').attr('row_id'); 
    alert(rowId); 
} 

$('.save_img').closest('tr') будет возвращать все tr элементов, которые имеют a .save_img, то .attr('row_id') вернет id первого элемента в этом наборе. ('Save_img ')..


Как @John предлагаемых ниже вы можете также использовать

$('.save_img').click(onChooseImageClick); 

function onChooseImageClick(el) { 
    var rowId = $(this).closest('tr').attr('row_id'); 
    alert(rowId); 
} 
+0

, значок .save_img - это «кнопка», которая нажата. –

+0

@ user3052629 no '$ ('. Save_img'). Closeest ('tr')' будет возвращать все первые 'tr' предки элементов с классом' save_img' –

+0

"$ ('. Save_img'). Ближайший ('tr ') вернет все элементы tr, у которых есть элемент .save_img «не совсем, он вернет первый tr в каждый элемент .same_img –

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