Подтвердить что ты не робот

Как передать объект jquery для работы?

Я пытаюсь написать общий код

var rodd = $('#checkBox');

Я хочу передать rodd в функцию и проверить, проверено ли оно

Callme(rodd);

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

function Callme(rodd){
if(this.checked){
// do some behavior
}
}
4b9b3361

Ответ 1

Если rodd - объект jQuery:

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

или

function Callme(rodd) {
  if (rodd[0].checked) {
    // ...
  }
}

Ответ 2

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

//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).

Ответ 3

Посмотрите на свой код, передав объект 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(), проходящий в целевой точке события. Рабочая демонстрация здесь.

EDIT:

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

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

Callme($(event.target));

});

function Callme(rodd){

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

}

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