У меня есть div. который я делаю слайд вверх и сползаю функцией jquery, функция myjquery
<script type="text/javascript">
jQuery(window).load(function () {
$("#nav > li > a").click(function () { // binding onclick
if ($(this).parent().hasClass('selected')) {
$("#nav .selected div div").slideUp(700); // hiding popups
$("#nav .selected").removeClass("selected");
} else {
$("#nav .selected div div").slideUp(400); // hiding popups
$("#nav .selected").removeClass("selected");
if ($(this).next(".subs").length) {
$(this).parent().addClass("selected"); // display popup
$(this).next(".subs").children().slideDown(200);
}
}
});
});
</script>
и html
<ul id="nav">
<li><a href="#"><b>Login</b></a>
<div class="subs">
<div>
<ul>
<table style="margin-right:12PX;width:200px;overflow:scroll;">
<tr style="width:70px"><td>Mobile Number</td></tr>
<tr> <td><asp:TextBox runat="server" ID="TextBox1" CssClass="selectfield" Width="170px"/></td>
</tr><tr><td>Password</td></tr><tr><td><asp:TextBox runat="server" ID="TextBox2" TextMode="Password" Width="170px" CssClass="selectfield" /></td></tr>
<tr style="height:5px;"><td></td></tr>
<tr><td>
<asp:Button ID="Button1"
runat="server" Text="Login" CssClass="btn" onclick="Button1_Click" /></td></tr>
<tr><td style="color:Red;">
<asp:LinkButton ID="LinkButton1" runat="server" CssClass="link">Forget Password</asp:LinkButton></td></tr>
</table>
</ul>
когда я нажимаю на логин, div sub сдвигается вниз и снова нажимает логин на слайд-шоу. он работает отлично. Я хочу, когда я нажму на login div, должен сдвинуться вниз. после, если щелкнуть в любом месте страницы, кроме <div>
. <div>
должен располагаться вверх.
Проверьте эту рабочую скрипту: http://jsfiddle.net/WxcLV/10/
Вместо того, чтобы click
попробуйте его с помощью click
как mouseup
ниже:
$('#loginButton').mouseup(function(login) {
$('#loginBox').toggle();
$('#loginButton').toggleClass('active');
});
$('#loginTable').mouseup(function() {
// to avoid hiding div
return false;
});
$(this).mouseup(function(login) {
if(!($(login.target).parent('#loginButton').length > 0)) {
$('#loginButton').removeClass('active');
$('#loginBox').hide();
}
});
Это будет работать
$(document).bind("click", function (event) {
if (!$(event.target).is('.subs') && $(event.target).closest('.subs').length==0) {
$("#nav .selected div div").slideUp(700);
$("#nav .selected").removeClass("selected");
}
});
вам также нужно позаботиться, если вы нажали внутри div.
хорошо, у меня есть способ обойти это. Надеюсь, что он сработает для вас. Пожалуйста, возьмите контейнер Container или возьмите тег тела (размер которого таков, что он охватывает всю страницу, например, 100%) и добавьте его в onclick событие и в этом случае раздвинуть div.Take Уход за тем, что ваш контейнер Container или тег Body должен покрывать всю страницу, чтобы он выглядел так, как будто пользователь щелкает на любом месте на странице. это трюк
сообщите мне, помогает ли это или нет.