点击事件在点击Firefox之前触发

时间:2015-05-12 15:03:11

标签: jquery firefox kendo-ui kendo-multiselect

我在IE和Chrome上正式触发了点击事件,但在Firefox上没有。

我的代码:

sender.bind("open", function () {
    var $openButton = sender.wrapper.find('.k-i-arrow-s');
    $openButton.addClass('active');

    $(document).delegate($openButton, "click", function () {
        sender.close();
        sender.input.blur();
    });
});

问题是Firefox上的委托是在第一次注册click事件时触发的!我也尝试了 on() bind(),同样的事情发生了。

解释代码:

这是一个Kendo MultiSelect控件。当它打开时,我必须将点击事件注册到 $ openButton 对象,这就是全部。

有什么想法吗?

这是道场:http://dojo.telerik.com/eSOBo

要测试点击箭头!

祝你好运

丹尼尔

1 个答案:

答案 0 :(得分:1)

只需查看您的代码及其不必要的代码

close

第52,59行,你总是插入相同的内容,你已经在第46行用相同的代码放了箭头,你将不再需要它了。

绑定openafter for multiselect以在箭头中添加和删除活动类,这会破坏您的预期行为。我建议你阅读"What is event bubbling and capturing?"

当您正常点击箭头或多选文本框(所有浏览器应具有相同行为)时,事件捕获将起作用,从多选开放然后箭头单击事件开始。 然而,重新插入元素内容的这个jquery代码package org.x.y.z private case object MA private case object MB private class ExistActor extends Actor { def receive: Receive = { case MA => case MB => } } 在firefox中使用其他浏览器提供了不同的体验。尝试删除该代码,看看所有浏览器会发生什么。

查看此dojo以查看所有浏览器都支持的更简单的实现。