2011-03-12 81 views
0

由於karim79我能夠點擊ImageButton和應用Jquery的高亮效果不同div多jQuery選擇

$("#btnFavorite").click(function() { 
    // selector for element to highlight 
    $("#theDiv").effect("highlight", {}, 3000); 
}); 

現在我想如下延長的問題。

我將ImageButtons動態地添加到網頁中,我想對每ImageButton點擊div應用效果。

 <asp:ListView ID="ListView1" runat="server"> 
     <layouttemplate> 
      <asp:PlaceHolder id="itemPlaceholder" runat="server" /> 
     </layouttemplate> 
     <ItemTemplate> 
     <asp:ImageButton ID="btnFavorite" runat="server" ImageUrl="~/Images/Favorite.png"/> 
     </ItemTemplate> 
    </asp:ListView> 

在這種情況下該怎麼辦?通過使用列表查看和添加屬性如

btnFavorite.Attributes.Add("onmouseclick", "doSomething")還是什麼?

我完全失去了!

+0

應用的CssClass和使用$(」你的類。)行爲添加到幾個項目。 ID =獨特的班級=多;) – Guillaume86 2011-03-12 17:03:27

回答

1

你可以嘗試一個更通用的選擇是這樣的...

$("input[type='image']").click(function(){ 
    $(".. related div selector ..").effect("highlight", {}, 3000); 
}); 

我不知道divinput之間的關係,所以我不能假設的選擇是什麼,但如果你發佈關係或解釋它我們可以幫助您編寫更準確的選擇器。

應該值得注意的是,如果你是動態添加ImageButton s到頁面的DOM加載,而不是在服務器端後,那麼你可能會想使用live方法連接事件...

$("input[type='image']").live('click', function(){ 
    $(".. related div selector ..").effect("highlight", {}, 3000); 
}); 
+0

謝謝! '輸入[id $ =「btnFavorite」](屬性結束選擇器)做了詭計! – OrElse 2011-03-12 17:54:44

+0

@ Chocol8奇妙的是,很高興聽到它爲你工作! – 2011-03-12 18:14:43

0

我不知道這是否會爲你工作,但我所做的是這樣的:

$("#<%= ListView1.ClientID %>").find(".ImageButtonTarget").click(function() { 
    .. 
}); 

我給我的按鈕控制一個獨特的類來找到它,並解析整個批量列表視圖。我不確定是否有一個或多個div,但如果div位於listview行中,您還可以使用父級組合並查找以從ListView行中抓取該組合。

這也保持在ListVIew範圍內;選擇器不必分析整個頁面來查找圖像按鈕,只能在列表中找到。

HTH。

1

簡單地命名爲class的屬性添加到ImageButtons你想有這樣的效果製作功能,並使用一個名稱重視它,例如effectMaker。然後調用相同的功能,但選擇改爲

$(".effectMaker").click(function() { 
    // selector for element to highlight 
    $("#theDiv").effect("highlight", {}, 3000); 
}); 

隨着.選擇後跟一個stringValue的,您引用每一個具有價值與stringValue的類元素。

+0

,但請注意,性能會降低(這可能並非重要)。如果你必須使用類,看看你是否可以對父母ala $(「#idOfParent .effectMaker」) – 2011-03-12 16:51:41

+0

是更具體一些,但用戶似乎是jQuery和DOM元素的新手。我認爲最好不要用太多的信息來填滿他的頭。 – 2011-03-12 16:56:48

+0

終於有人理解!謝謝 – OrElse 2011-03-12 17:06:41

0

這將「theDiv」容器內適用於型「形象」的每個輸入效果():

$('#theDiv').find('input[type="image"]').effect('highlight', {}, 3000); 

或者,這將其應用到「theDiv」上的每個輸入型圖像點擊:

$('input[type="image"]').click(function() { 
    $('#theDiv').effect('highlight', {}, 3000); 
}); 

不知道你試圖去做哪一個。