Jquery如何点击时触发功能?
我正在尝试创建一个简单的错误消息,该消息应该在页面单击时消失。
这是我的 Jsfiddle: http://jsfiddle.net/ZKgWR/1/
我想隐藏.super 消息,当在页面上单击时消息可见。
这是我的 jquery:
// show super on click
$('.error').click(function(e) {
e.preventDefault();
var position = $(this).position();
$('.super').css({
display: 'block',
position: 'absolute',
left: position.left + 50,
top: position.top
});
var super = true
});
// If .error clicked then enable the function to remove the super message
if ($('.error').show()) {
$(document).click(function() {
$('.super').hide();
});
}
// If .error clicked then enable the function to remove the super message
if ($('.error').show()) {
$(document).click(function() {
$('.super').hide();
});
}
问题是这部分代码不起作用:
if ($('.error').show()) {
$(document).click(function() {
$('.super').hide();
});
}
单击 .error 时不会附加任何内容,因为当 .super 不可见时该函数也处于活动状态。
I am trying to create a simple error message that should disapear on page click.
Here is my Jsfiddle: http://jsfiddle.net/ZKgWR/1/
I want to hide the .super message when clicked on the page, when the message is visable.
Here is my jquery:
// show super on click
$('.error').click(function(e) {
e.preventDefault();
var position = $(this).position();
$('.super').css({
display: 'block',
position: 'absolute',
left: position.left + 50,
top: position.top
});
var super = true
});
// If .error clicked then enable the function to remove the super message
if ($('.error').show()) {
$(document).click(function() {
$('.super').hide();
});
}
// If .error clicked then enable the function to remove the super message
if ($('.error').show()) {
$(document).click(function() {
$('.super').hide();
});
}
The problem is that this part of the code is not working:
if ($('.error').show()) {
$(document).click(function() {
$('.super').hide();
});
}
Nothing appends when clicking on .error because of the function is also active when the .super is invisable.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为什么不添加一个名为 active 或visible 的类?
你的错误是在 if 语句中,在进行任何检查之前必须首先发生一个事件...
编辑:
看看你的 js 小提琴我意识到我犯了错误,它应该是 e.stopPropogation,这是完整的工作代码:
Why not add a class called active or visible?
Your error was in the if statement, an event must occur first before doing any checks...
EDIT:
Looking at your js fiddle I realised the mistake I made, it should be e.stopPropogation, here is a full working code: