Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events jQuery单击/打开(单击)事件在FF中不触发?_Events_Javascript Events_Onclick_Jquery - Fatal编程技术网

Events jQuery单击/打开(单击)事件在FF中不触发?

Events jQuery单击/打开(单击)事件在FF中不触发?,events,javascript-events,onclick,jquery,Events,Javascript Events,Onclick,Jquery,以下代码:一键点击事件(关闭登录框)不会在FF中触发(但是webkit浏览器可以工作。滑动切换点击事件也可以在所有浏览器中工作)。有人知道为什么吗 非常感谢您的帮助 HTML CSS 你最好用这个: $(document).ready(function() { $('#menu_login').click(function() { alert('test'); // this DOES fire, works in all browsers $('#log

以下代码:一键点击事件(关闭登录框)不会在FF中触发(但是webkit浏览器可以工作。滑动切换点击事件也可以在所有浏览器中工作)。有人知道为什么吗

非常感谢您的帮助

HTML CSS 你最好用这个:

$(document).ready(function() {
    $('#menu_login').click(function() {
        alert('test'); // this DOES fire, works in all browsers
        $('#loginbox').slideToggle(240,'swing');
    });
    $('#loginbox_close').click(function() {
        alert('test'); // does not fire in FF, however webkit browser work!
        $('#loginbox').slideUp(240,'swing');
    });
});

它应该会起作用。这样,您就可以将单击事件直接分配到菜单“登录”和“登录框divs”中。

因为您使用的是委托事件,所以单击仅在从
\loginbox\u close
弹出时才会触发

用红色勾勒出的
#loginbox\u close
。单击此框,您将看到事件正在运行


并直接从上面使用代码,同时添加红色边框。

如果使用ajax加载登录框,则可以使用:

$('#loginbox_close').live('click',function() {
    ...
});
似乎输入后面的
太多,请删除它

<div class="loginbox" id="loginbox">
<div class="loginbox_close" id="loginbox_close"></div>
...
<input type="button" value="Login" class="btn_login">
</div>

...

登录框的高度是多少?是显示:块还是内联?@Daniel Ruf:这是整个css,所以没有定义高度。。。在我得到最小高度之前,slideToggle事件在那一点停止了几毫秒…@DanielRuf:thx无论如何,有趣的一点。。。我试图添加高度属性,但不幸的是,它没有改变任何东西。。。那么,同样的结果..你试着把代码放在文件的末尾吗?@DanielRuf:Jamie的答案解决了它,谢谢Daniel!:)谢谢Abotoni,我已经尝试过直接点击,但是在这个地方它也不起作用。。。此外,我还需要使用.on,因为稍后会通过jQueryAjax加载日志收件箱,然后单击将不起作用……感谢Jamie,感谢您的回答和努力!我真的很抱歉,但我不知道这意味着什么。。。你说的听起来不错,但恐怕我完全不明白。。。抱歉..传递给函数上的
的第二个参数是元素的id。这告诉click事件只有在附加到
#loginbox
的事件是由于单击
#loginbox\u close
而导致的情况下才会触发。我看起来像原始代码吗?但是a太多了?代码与@DanielRuf完全相同,除了我在
#loginbox\u close
上加的边界。我不确定你所说的
是什么意思。我的意思是,这似乎是你回答的问题,
.on
.live
的做法相同,但是
.live
有一些缺点(有一个很棒的博客,名为“活着的一切都会死”),但不幸的是,我再也没有链接了……输入的背后是什么?你是说按钮的id吗?你为什么觉得太多了?啊,非常锐利的眼睛!:)这是我的错,我遗漏了中间不必要的html元素(如
..
所示),所以开头的
在点中。。。但你不可能知道,这是我的错误(复制粘贴)
$(document).ready(function() {
    $('#menu_login').click(function() {
        alert('test'); // this DOES fire, works in all browsers
        $('#loginbox').slideToggle(240,'swing');
    });
    $('#loginbox_close').click(function() {
        alert('test'); // does not fire in FF, however webkit browser work!
        $('#loginbox').slideUp(240,'swing');
    });
});
$('#loginbox_close').live('click',function() {
    ...
});
<div class="loginbox" id="loginbox">
<div class="loginbox_close" id="loginbox_close"></div>
...
<input type="button" value="Login" class="btn_login">
</div>