2013-07-15 5 views
0

Как установить значение кнопки click?Как сравнить id по jquery

В моей html-форме набор пользователей, каждый из которых имеет отдельный идентификатор. Пользователи автоматически генерируются, если новый пользовательский регистр означает, что они входят в список. Наряду с этим я оставил одну кнопку «Приглашение». Но эта настройка идентификатора кнопки для всех пользователей. Если я продолжаю нажимать кнопку предупреждения, он устанавливает для всех пользователей в качестве оповещения.

EX: Если Джон как один пользователь и имеет идентификатор 5, если я нажму кнопку приглашения Джона, для всех пользователей появится предупреждение. Что мне нужно, если приглашение Джона нажать «клик», Джон должен пригласить не всех пользователей.

Как я могу сравнить идентификатор пользователя и идентификатор кнопки?

Вот код:

<script> 
    $(document).ready(function(){ 
    $(".InviteTeacher").click(function(){ 
alert('Invited'); 
    }); 
    }); 
    </script> 

<div class="thumb_section bx-def-margin-sec-right"> 
     __thumbnail__ 
    </div> 
    <div class="button_wrapper"> 
    <input type="button" value="Invite" name="InviteTeacher" class="InviteTeacher"  id= "InviteTeacher"/>     
     </div> 

Здесь миниатюр является пользовательской информации.

+2

Вы должны опубликовать соответствующий HTML/JQuery код .. иначе я думаю, что этот вопрос, скорее всего, будет закрыт. – bipen

+1

Отправьте свой код вместе с вашим вопросом. Извлеките jsfiddle, если сможете. –

ответ

0

На месте кнопок поколения

$("#button" + userId).click(function(){ 

    //do this 
}) 
+0

Как получить userId в формате Dolphin –

2

хранить значения в скрытых входах.

<form> 
    <input type="hidden" name="from_id" value="1"> 
    <input type="hidden" name="to_id" value="5"> 
    <input type="submit" value="Invite"> 
</form> 
0

Пусть # invite0, # INVITE1, # INVITE2, ... являются HTML ID атрибуты кнопок пригласить пользователей [0], пользователи [1], пользователи [2], ... и doInvite (j) - это функция, которая предложит пользователю пользователей [j].

Вам необходимо привязать текущее значение i к функции doInvite, чтобы получить фактический обработчик. См. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

Обратите внимание, что doInvite (i) неверно, что приглашало бы их сейчас, в цикл for, без нажатия кнопки. И функция() {doInvite (i)} неверна, потому что я изменил бы к тому времени, когда вызывается обработчик события.

Но bind создаст для нас новую функцию со значением цикла i, заполненным первым параметром функции. Это можно затем назвать обработчиком событий.

for(var i=0; i<users.length; ++i){ 
     $('#invite'+i).click(doInvite.bind(null, i)); 
    } 

или это также может быть записано с закрытием

for(var i=0; i<users.length; ++i){ 
    $('#invite'+i).click( (function(j){ 
    return function(){ 
     doInvite(j); 
     } 
    })(i)); 
} 

В этом случае значение I петли хранятся в новой области, созданной верхней анонимной функцией, внутри ее J параметра. Вы можете думать об этом вложенности функций anonoymos как возвращающем несколько разных обработчиков событий каждый раз вокруг цикла. Все j находятся в своих областях и сохраняют значения 0,1,2,3, ... по мере продвижения цикла.

Для другого примера о затворов и установки в цикле обработчика событий см Event handlers inside a Javascript loop - need a closure?

Для более о том, что закрытие и что они видят How do JavaScript closures work?

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