Как я могу создавать функции в jQuery и вызывать его по событию и передавать ему переменную? - PullRequest
0 голосов
/ 27 сентября 2010
$(".addcart").click(function(){

   $("input[name='items']:checked").each(function() {
       //doing something
   });

});

Я пытаюсь создать общий класс, на котором я что-то делаю.Есть ли способ, которым я могу сделать "элементы" переменной, я имею в виду Могу ли я передать имя флажка для этого события.

Ответы [ 3 ]

0 голосов
/ 27 сентября 2010

Используйте bind вместо клика

$(".addcart").bind("click", {name: "items"}, function(event){
   $("input[name='" + event.data.name + "']:checked").each(function() {
       //doing something
   });
});

редактирование:

"Как я могу создавать функции в jQuery и вызвать его на событие и передать переменную к этому "

Это будет та же самая процедура. Используйте bind, чтобы присоединить обработчик события, передать ему объект с необходимым для вашей функции материалом. В вашем обработчике событий вызовите вашу функцию и передайте ей объект из event.data

$(".addcart").bind("click", {foo: "hello world"}, function(event) {
   DoSomethingOnClick(event.data);
});

function DoSomethingOnClick(obj) {
   obj = obj || {};
   if (obj.hasOwnProperty('foo'))
      alert(obj["foo"]);
   else
      alert("no foo here");
}
0 голосов
/ 27 сентября 2010

Вы знаете, что все отмеченные элементы будут иметь имя items, так что это не очень интересно, но, возможно, вы хотите получить value каждого из items:

$(".addcart").click(function(){

   $("input[name='items']:checked").each(function() {

         // To access an attribute of this item use the form $(this).attr(...)
       alert( this.value );

   });

});

Выше используется this для доступа к элементу, который повторяется.Взгляните на свойства элемента DOM , чтобы увидеть, к каким свойствам this вы можете получить доступ.

Вы можете создать объект jQuery из this используя форму $(this), вы можете использовать .attr() для доступа к атрибутам this.Например, чтобы получить класс (ы) this, вы можете использовать this.className или $(this).attr("class").

Более быстрый прямой доступ к свойствам элемента DOM.Но для некоторых более сложных манипуляций полезно знать, что $(this) также доступен.

0 голосов
/ 27 сентября 2010

Попробуйте и посмотрите, получится ли:

$("input[name='items']:checked").each(function() {
  alert(this.attr("name"));
});

Я думаю, что где-то использовал это.

[EDIT] Дело в том, что jQuery передает текущий элемент в foreach в качестве контекста переменной.

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