Как передать объект jQuery функционировать?

Я размышляю, что Вы могли propably кри как оператор

что-то как

as<T,Type> (left, right)  
which evaluates to 
if (typeof(left) == right)
   return (right)left
else
    return null

, я не уверен, как Вы сделали бы это, я - c# в данный момент, и моя шляпа Java стала немного пыльной, так как я покинул университет.

21
задан rahul 25 September 2009 в 10:23
поделиться

3 ответа

If rodd is a jQuery object:

function Callme(rodd) {
  if (rodd.is(":checked")) {
    // ...
  }
}

or:

function Callme(rodd) {
  if (rodd[0].checked) {
    // ...
  }
}
16
ответ дан 29 November 2019 в 21:49
поделиться

Это должно сработать:

//Assuming rodd is a jquery element
Callme(rodd);

rodd.click(function() {
  Callme($(this));
});

function Callme(rodd){
  if(this.is(":checked"){
    // do some behavior
  }
}

помните, что у слушателя событий это указывает на элемент DOM, не элемент jquery. Поэтому вам нужно преобразовать это в элемент jquery, используя выражение $ (this).

5
ответ дан 29 November 2019 в 21:49
поделиться

Глядя на ваш код, вы передаете объект jQuery, rodd , в функцию для возврата объекта jQuery $ (rodd) .click ...

Это могло бы быть проще для выполнения

$('#checkBox').click(Callme);

function Callme(rodd){

    if(this.checked){
    // do some behavior
    }

}

или

$('#checkBox').click(Callme);

function Callme(rodd){

    if($(this).is(':checked')){
    // do some behavior
    }

}

это также устраняет обработчик событий анонимной функции, который выполняет только Callme () , передаваемый в цель события. Здесь рабочая демонстрация .

РЕДАКТИРОВАТЬ:

В настоящее время Callme (rodd) выше ожидает передачи объекта HTMLElement . Если вы хотите иметь возможность передавать объект jQuery, просто измените его на этот

$('#checkBox').click(function(event) {

Callme($(event.target));

});

function Callme(rodd){

    if(rodd.is(':checked')){
     alert('checked');
    }

}

, хотя лично я бы сохранил его как передаваемый элемент и сделал бы обертку в функции Callme . вы можете захотеть добавить к параметру rodd префикс $ , чтобы было очевидно, что ожидается объект jQuery.

1
ответ дан 29 November 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: