我已经把自己在一起的多个选择下拉菜单,看起来像这个名单的用户控件:的Jquery在多重下拉列表中选择
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="multiTop" class="multiTop">
<asp:Button ID="DropDownButton" CssClass="dropDownButton" Text="All" runat="server" />
</div>
<div ID="multiMain" class="multiMain" style="display:none">
<asp:Button ID="SelectAllButton" Text="All" runat="server" CssClass="allButton" OnClick="AllButton_Click" />
<asp:CheckBoxList ID="MultiCheckBox" runat="server" RepeatDirection="Vertical" AutoPostBack="true"
OnSelectedIndexChanged="MultiCheckBox_SelectedIndexChanged" CssClass="mutiCbl">
</asp:CheckBoxList>
</div>
</ContentTemplate>
</asp:UpdatePanel>
首先我使用的是服务器端事件来显示和隐藏“multiMain”面板(现在是div),只要DropDownButton被按下。稍后一点Css摆弄,整个事情看起来像一个下拉列表。
然而,主要的问题是,如果用户点击页面上的其他任何地方,不像真正的下拉列表,下拉部分没有消失。因此,我用一颗沉重的心转向了Jquery,这是我几乎不知道的。
我正在寻找一些jquery,当按钮被点击时会显示和隐藏div,并且当你点击任何其他地方时隐藏div。到目前为止,我想出了:
$(document).ready(function() {
var dropDownButton = $get('<%= DropDownButton.ClientID %>');
var multiMain = $get('<%= multiMain.ClientID %>');
dropDownButton.click(function() {
if (multiMain.is(":hidden")) {
multiMain.slideDown("slow");
}
else {
multiMain.slideUp("slow");
}
return false;
});
$(document).click(function() {
multiMain.hide();
});
multiMain.click(function (e) {
e.stopPropagation();
});
});
然而,什么也没发生的下拉按钮被点击时,或点击该页面的其余部分时,我有几个这样的多选择下拉列表上页面,我真的不知道我是如何理清事件的。有任何想法吗?
你能发布你的ASPX页面生成的HTML标记吗?另外,'$ get'定义在哪里? – 2011-05-26 07:40:32