JQuery; объединить пользовательский клик и: проверено - PullRequest
1 голос
/ 12 апреля 2010

У меня есть два блока кода, которые в основном проверяют 1) событие щелчка на переключателе, например,

$("input[id='frmSkill']").click(function(){ 
      //do something
});

И 2) блок кода для проверки, установлен ли переключатель: проверено, если да, то выполните некоторые действия, например,

if($("input[id='frmSkill']:checked").val()){
      //do something
});

То, что я хотел бы сделать, это объединить их, чтобы уменьшить код, поскольку действия, выполняемые под каждым из них, одинаковы.

Ответы [ 4 ]

3 голосов
/ 12 апреля 2010
$("input[id='frmSkill']").click(function(){ 
      if($(this).is(":checked")) {
          // do something, e.g.
          alert($(this).val());
      } else {
          // do something else
      }
});

Я думаю, вы ищете метод обхода.

0 голосов
/ 12 апреля 2010

Почему вы все все усложняете?

$("input[id='frmSkill']").change(function(){
    // Your Code Here
});
0 голосов
/ 12 апреля 2010

Отдельная функция, которую можно использовать в обоих случаях:

function OnClickOrCheck(){
// code for both cases here
}

$("input[id='frmSkill']").click(OnClickOrCheck);

if($("input[id='frmSkill']:checked").val()){
OnClickOrCheck();
}
0 голосов
/ 12 апреля 2010

Я думаю, что событие "изменение" более приспособлено к флажку:

    $("input[id='frmSkill']").bind('change',function(){ 
      if($(this).is(':checked')){
         // do something
      }
    });
...