2009-09-17 65 views
0

我有一個包含一些複選框的ASP.Net用戶控件,並且我想在單擊其中一個複選框時使用JQuery從用戶控件中引發一個事件。這裏是jQuery代碼在用戶控制,其中我試圖引發事件:ASP.Net中的JQuery自定義事件用戶控件

  $(document).ready(function() { 
      $(':checkbox').click(function(){ 
       $('#hfRemainingInstalls').trigger('CheckBoxClicked'); 
      }); 
     }); 

,這裏是jQuery代碼中包含ASPX頁面,在這裏我想訂閱事件:

  $(document).ready(function() { 
       $("p").bind('CheckBoxClicked', function(e) {  
       alert("checkbox clicked");  
      }); 
      }); 

我從未看到我的警報,當我點擊其中一個複選框。任何人都知道這裏可能是什麼問題?

+0

hfRemainingInstalls是P標籤之一的標識? – 2009-09-17 20:11:56

+0

hfRemainingInstalls是用戶控件上的一個asp隱藏字段。我試圖在aspx頁面上使用p標籤,但現在已經改變了引用hfRemainingInstalls,但仍然無效。 – 2009-09-17 20:39:01

回答

0

我相信你有一個ID的問題。位於容器元素(如UserControls和MasterPages)內部的ASP.NET控件在呈現時,會在id屬性前加上一些垃圾來確保唯一性。它通常是像「ctl01_01_YourID」這就是說,你可能應該使用jQuery的endsWith選擇...

$('input[id$=hfRemainingInstalls]').trigger('CheckBoxClicked'); 

下面將提醒「真」如果元素被發現......

alert($('#hfRemainingInstalls').length > 0); 
0

所以是有ID標籤P和標識hfRemainingInstalls

1之間的關係:解決方案

$(':checkbox').click(function(){ 
    $("p").trigger('CheckBoxClicked'); 
}); 

$(document).ready(function() { 
    $("p").bind('CheckBoxClicked', function(e) {  
    alert("checkbox clicked");  
    }); 
}); 

2:解決方案

$(':checkbox').click(function(){ 
    $("#hfRemainingInstalls").trigger('CheckBoxClicked'); 
}); 

$(document).ready(function() { 
    $("#hfRemainingInstalls").bind('CheckBoxClicked', function(e) {  
    alert("checkbox clicked");  
    }); 
}); 
+0

我早就想到了這一點,但剛纔再試一次,但它沒有幫助。 – 2009-09-17 20:32:20

+0

好吧,得到一些HTML來更好地瞭解如何幫助你? – 2009-09-18 09:29:25