当用户使用jquery点击任何位置时,切换并隐藏登录表单
Toggle and Hide Login form when users click anywhere using jquery
所以我在li
标记中有一个登录表单。
HTML
<div class='container'>
<ul class="pull-right">
<li><a href="#" class="nav-bar">A</a></li>
<li><a href="#" class="nav-bar">E</a></li>
<li><a href="#" class="lion">Login</a>
<div class="eagle form">
<form>
...
</form>
</div>
</li>
</ul>
</div>
我想在用户单击login
时show()
表单,在用户单击其他位置时hide()
表单,使用jquery。
在阅读了这个答案后,我使用了这个jquery代码:当用户点击其他时,如何使用jquery隐藏ul
JS-
$(function () {
var sesion = $('.eagle.form');
$('.lion').on('click', function (e) {
e.stopPropagation();
sesion.toggle();
});
$(document).on('click', function (e) {
sesion.toggle();
});
});
然而,当登录表单出现并且我想与上面的字段交互时,它会再次隐藏起来。
如何修复代码?我想我漏了一行。
欢迎提出任何解决问题的建议!
演示
HTML:
<ul>
<li>
<a href="#">test</a>
</li>
<div class="meh">
<li> <a href="#" class="toggleForm">Form</a>
<ul class="form">
<li>
<form>
<input type="text" />
<input type="submit" />
</form>
</li>
</ul>
</li>
</div>
</ul>
Js:
$(".form").hide();
$(".toggleForm").click(function() {
$(".form").toggle();
});
$(document).on("click", function(e) {
if ($(e.target).closest(".meh").length == 0) {
$(".form").hide();
}
});
这就是你要找的吗?
使用这个问题的解决方案:当用户点击外部时,使用jQuery隐藏div
$(document).mouseup(function (e) {
var container = $('.form');
if (!container.is(e.target)
&& container.has(e.target).length === 0) {
container.hide();
}
$('HERE-GOES-li-CONTAINER').click( function(event) {
$('.form').toggle();
});
});
相关文章:
- 使用javascript取消隐藏和隐藏表单中的某些元素
- 如何使用javascript隐藏表单的选项
- 模拟隐藏表单提交&使用JavaScript重定向以实现安全支付
- 未执行Ajax隐藏表单提交验证
- 在同一个html页面中显示servlet响应而不隐藏表单
- 自动提交隐藏表单值
- 如何筛选出发布的隐藏表单输入类型
- 如何在angularjs中提交后隐藏表单
- 如果用户登录了Backbone,JavaScript,如何显示/隐藏表单
- 显示/隐藏表单区域(im 使用引导程序)
- 如何隐藏表单并仅在选中时显示
- 如何通过隐藏表单在同一页面中显示表单输出
- 如何在同一窗口中显示表单输出并隐藏表单
- 使用 jquery 选择选项时隐藏表单选项
- 当一组元素的所有元素都具有特定值时,如何隐藏表单元素
- 如果禁用了javascript,则隐藏表单
- 选择下拉列表中的值时隐藏表单
- 无法隐藏/取消隐藏表单内的按钮
- 如何根据最后选择的选项(单选按钮)使用 javascript 隐藏表单输入
- 显示和隐藏表单