单击元素外部时进行JQuery
JQuery On Click Outside Of Element
JSFiddle 上的实时演示
我知道这里有很多关于点击元素之外的问题,但我无法解决我的问题。
我的菜单第二层您可以右键单击并当前重命名列表项。您只能通过输入来执行此操作;
$("body").on("keydown", "li.Clicked>input", function (e) {
var inputValue = $(this).val();
if(e.keyCode == 13) {
$('ul.inbox-nav > li > ul > li.Clicked a').show();
$("ul.inbox-nav > li > ul > li.Clicked a").text(inputValue);
$("ul.inbox-nav > li > ul > li.Clicked input").remove();
$("ul.inbox-nav > li > ul > li.Clicked").removeClass('Clicked');
}
});
然而,我正试图在整个菜单区域之外添加一个外部点击事件,以便上述结果也会发生或重置,无论哪种方式,但我无法设置任何内容,而它似乎会中断。
请注意:虽然此问题没有答案,但要查看菜单的完整工作形式,您必须在选择重命名时按enter键,否则.Clicked
类将不会被删除。
看看这个。。。
您可以为输入元素添加一个focusout监听器。为了使它在您的用例中发挥作用,您必须在将输入元素添加到DOM之后放置侦听器附件。当您单击其他位置或输入字段外的选项卡时,focusout监听器会触发。
$('#MailMenuSecondTier li').click(function(e) {
if ($(this).hasClass('Rename')) {
$('ul.inbox-nav > li > ul > li.Clicked a').hide();
$('ul.inbox-nav > li > ul > li.Clicked').append("<input type='text' value='" + $("ul.inbox-nav > li > ul > li.Clicked a").text() + "'>");
$('ul.inbox-nav > li > ul > li.Clicked > input').select();
$('ul.inbox-nav > li > ul > li.Clicked > input').focusout(function(){
var inputValue = $(this).val();
$('ul.inbox-nav > li > ul > li.Clicked a').show();
$("ul.inbox-nav > li > ul > li.Clicked a").text(inputValue);
$(this).remove();
$("ul.inbox-nav > li > ul > li.Clicked").removeClass('Clicked');
})
}
});
相关文章:
- Firefox赢得了'不会显示我添加的jquery元素,但Chrome会显示
- 使用返回函数sinde.attr()jquery元素
- Wooccommerce所有JS和Jquery元素都未加载
- 追加JQuery元素和Angular
- 如何获取jQuery集合中的第k个元素..作为JQUERY元素
- 是否存在jQuery元素选择库的最小化版本
- 不能同时通过类和数字 ID 选择 jquery 元素
- 为什么jquery元素在ipad上没有响应
- Jquery元素用法
- 用于获取jQuery元素或值的方法
- 淡入淡出切换jquery元素
- 用于查找在 jQuery 元素集中具有特定类的元素的索引的单行代码
- 选择具有由 data() 设置的某个值的 JQuery 元素
- Jquery 元素的高级过滤
- 链接到另一个带有jQuery元素的页面
- jQuery:通过 .wrap() 添加到 DOM 的 jQuery 元素上的切换类
- 将字符串转换为 jquery 元素并将其追加到 DOM 中
- 与“click”事件一起存储的jQuery元素未按要求工作
- 在哈希数组中保存对 jquery 元素的引用
- 如何从核心JavaScript选择中获取jquery元素