iPad上的jQuery mouseout

时间:2011-08-09 09:40:20

标签: javascript jquery iphone ipad safari

我有一个在桌面浏览器上运行良好的jQuery代码;

$("span#checkbox_err").mouseout(function () {
                        $("span#checkbox_err").fadeOut("slow");
                    });

但同样不会在iPad上触发(因此checkbox_err显示在屏幕上,但从不隐藏)

如何在iPad上触发mouseout事件?

此外,我还想避免使用任何其他库来解决这个小问题。

我有一个以后的问题

我在iPad上测试一个页面,并且面临一些实现鼠标操作行为的问题。

所以问题很容易理解; 1.在我的页面上,点击(或者说触摸)有一个复选框,我想显示一个errorMsg 2.点击/触摸除errorMsg以外的任何内容,我想隐藏errorMsg

以下是我写的代码;

$(document).bind("touchstart",function(e){
         if(e.target.id != "checkbox_err")
        $("span#checkbox_err").fadeOut("slow");
     });
}


$("input:checkbox").bind("touchstart",function(){
$("span#checkbox_err").fadeIn("fast");

});

现在的问题是当我点击/触摸复选框时,errorMsg显示一段时间,然后它也会立即隐藏它(因为目标不是errorMsg)

如何解决此问题?

4 个答案:

答案 0 :(得分:2)

您可以尝试.blur()而不是.mouseout()

答案 1 :(得分:1)

也许是因为冒泡? 这对我来说很有意义,事件将到达不是目标的底层。 所以你必须停止eventPropagation:

$("input:checkbox").bind("touchstart",function(){
$("span#checkbox_err").fadeIn("fast");
event.stopPropagation.

});

希望它能帮到你。 你碰巧找到了mouseout的替代方案吗? - 这把我带到了这里。

答案 2 :(得分:1)

  

这个例子一定会对你有所帮助! http://jsfiddle.net/PzTcS/12/,它适用于iPad。

答案 3 :(得分:-1)

您可以尝试使用ipad中的 GestureEnd()事件