はじめに:
リンクボタン付きのリピーターがあります。あるボタンをクリックすると、それだけが透明になり、残りのボタンは変更されないようにします。
D-テール:
LinkButtonsのリピーターがあります:
<div style="position: relative">
<asp:Repeater runat="server" ID="repStatuses"
onitemdatabound="repStatuses_ItemDataBound"
onitemcommand="repStatuses_ItemCommand">
<ItemTemplate>
<div id="divLinkBtn" style="display:inline"><asp:LinkButton ID="linkBtnStatuses" runat="server" CommandName="ShowText"
CommandArgument='<%# Eval("Priority") + ";" + Eval("LevelID") + ";" + Eval("ID") %>'
OnClientClick='<%# "MyFunc(" + Eval("Priority") + ");" %>'>
<div runat="server" id="divSts" class="fontAriel" ></div>
</asp:LinkButton></div>
</ItemTemplate>
</asp:Repeater>
</div>
LinkButtonは、次のJquery関数を使用してPage_Loadでフェードインします。Page_Loadとjqueryコードは次のとおりです。
Page_Load:
protected void Page_Load(object sender, EventArgs e)
{
SetPageTitle();
if (!Page.IsPostBack)
{
LoadStatusesAndButtons();
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "tmp", "<script type='text/javascript'>LoadBarWithFadeIN();</script>", false);
}
else
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "tmp", "<script type='text/javascript'>LoadBar();</script>", false);
}
Jquery
function LoadBarWithFadeIN() {
$(document).ready(function () {
$('a[id*="repStatuses"]').each(function () {
$(this).show(2500);
$(this).delay(1000);
});
});
}
function LoadBar() {
$(document).ready(function () {
$('a[id*="repStatuses"]').each(function () {
$(this).show(0);
});
});
}
LinkButtonをクリックすると、透明になります。code
これにより、最初のlinkButtonのみが透過的になることがわかりました。
$(document).ready(function () {
$('#divLinkBtn').click(function () {
alert('divlinkbutton presed');
$(this).css({ 'opacity': 0.4 });
});
});
問題は、ボタンが1秒間透明になり、ページがLoadBar()
関数をロードして透明度が消えることです。
もう1つは、この関数が残りのボタンを処理しないことです。
今必要なのは、他のリンクボタンをクリックするまで、このLinkButtonは透明なままである必要があるということです。
クリックされていないすべてのボタンをそのままロードし、特定のクリックされたボタンを透明度でロードする方法を考えていましたが、コーディングの経験が不足しているため、これを行う方法が見つかりません。
「短い」投稿でごめんなさい:)
どんな助けでも大歓迎です!!!!!