2010-07-09 55 views
0

我知道我可以更改選中的屬性進行檢查,但我需要實際「點擊」複選框來觸發實時()(jQuery)單擊事件。我知道我也可以讓它成爲一個函數,但如果可能的話,這隻會是一個更清潔,更少的代碼。動態點擊複選框上的JavaScript(或jQuery)

哦,供參考:

$('.modal-form [name='+json[0].owners[x].name+']').click(); 

不工作。它會檢查他們,但實際上本身並沒有「點擊」他們到jQuery的火災現場()事件

這裏的AJAX調用,如果有人有興趣:

$('.agenda-modal input[type=checkbox]:not([name="emergency-item"])').live('click',function(){ 
     iid = $('.agenda-modal').attr('data-defaultitemid'); 
     the_type = $(this).parent().parent().attr('id'); 
     checked_item = $(this).val(); 

     if($(this).attr('checked')){ 
      if(the_type == 'the-elected-list'){ 
       $livepreview.agenda({ 
        action:'update', 
        type:'owner', 
        id:iid, 
        owner:checked_item 
       }); 
      } 
      else if(the_type == 'the-bureau-list'){ 
       $livepreview.agenda({ 
        action:'update', 
        type:'bureau', 
        id:iid, 
        bureau:checked_item 
       }); 
      } 
     } 
     else{ 
      $livepreview.agenda({ 
       action:'get', 
       type:'item', 
       id:iid, 
       callback:function(json){ 
        if(the_type == 'the-elected-list'){ 
         for(x in json[0].owners){ 
          if(json[0].owners[x].name == checked_item){ 
           $livepreview.agenda({ 
            action:'delete', 
            type:'owner', 
            id:json[0].owners[x].item_owner_id 
           }); 
          } 
         } 
        } 
        else if(the_type == 'the-bureau-list'){ 
         for(x in json[0].bureaus){ 
          if(json[0].bureaus[x].name == checked_item){ 
           $livepreview.agenda({ 
            action:'delete', 
            type:'bureau', 
            id:json[0].bureaus[x].item_bureau_id 
           }); 
          } 
         } 
        } 
       } 
      }); 
     } 
    }); 
+0

請包括一個例子。通過製作複雜的表達式,你很可能找不到合適的元素。把它調低。 – 2010-07-09 21:30:56

+0

@meder,如果它正在檢查複選框,那麼他會找到正確的元素。 – Pointy 2010-07-09 21:33:01

+0

不,就像我說的,在上面的代碼中,它會點擊(並檢查元素),但不會單擊元素......這是一個AJAX調用(上面1秒內發生的錯誤),當複選框爲點擊以即時保存選擇。 – 2010-07-09 21:33:28

回答

0

這將「點擊」複選框。如果它會觸發與live()綁定的事件,我並不積極。

$('#myCheck').click(); 
0

請包括一個例子。通過製作複雜的表達式,你很可能找不到合適的元素。把它調低。

var el = $('.modal-form [name='+json[0].owners[x].name+']') 
alert(el.length) 

那你可以.trigger('click')吧。確保事件處理程序是綁定/設置的。

+0

對於每個項目,我都會在警報中返回「1」。因此,如果我選擇了兩個「所有者」,我會收到兩條每條都返回「1」的提示。 – 2010-07-12 20:46:58

+0

請包括一個例子 – 2010-07-12 21:32:02

0

顯然我不知道你的代碼庫,但我真的很想知道通過僞裝UI交互來調用函數是否會「更清晰」。這可能是更少的代碼,但對我來說聽起來很脆弱。 UI重新設計時會發生什麼?或者另一個開發人員修改了事件處理程序而沒有意識到你的代碼也隱式地使用了它?將代碼移入單獨的函數使其更清晰,更健壯(可能不會更長)。