Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
Javascript 为什么我的jquery动画在使用浏览器确认和警报时不能在chrome中正常运行?_Javascript_Jquery_Jquery Animate - Fatal编程技术网

Javascript 为什么我的jquery动画在使用浏览器确认和警报时不能在chrome中正常运行?

Javascript 为什么我的jquery动画在使用浏览器确认和警报时不能在chrome中正常运行?,javascript,jquery,jquery-animate,Javascript,Jquery,Jquery Animate,我看到了一个关于chrome中一些jquery动画的问题。 我想知道是否有其他人看到过这个 我只是想做一些简单的向上滑动来隐藏一个div,或者隐藏然后淡入一个div。 div上的向上滑动动画没有在chrome中发生,并且在淡入开始之前隐藏是滞后的;而在firefox中,动画是即时且平滑的 问题是,我有一个围绕这个东西的浏览器confirm,只有在用户确认的情况下才能做这个动画。 如果我删除确认,动画在chrome中工作良好 奇怪吗 这里有一个例子。有了确认,我就没有滑梯了。没有确认,我得到一个。

我看到了一个关于chrome中一些jquery动画的问题。 我想知道是否有其他人看到过这个

我只是想做一些简单的向上滑动来隐藏一个div,或者隐藏然后淡入一个div。 div上的向上滑动动画没有在chrome中发生,并且在淡入开始之前隐藏是滞后的;而在firefox中,动画是即时且平滑的

问题是,我有一个围绕这个东西的浏览器confirm,只有在用户确认的情况下才能做这个动画。 如果我删除确认,动画在chrome中工作良好

奇怪吗

这里有一个例子。有了确认,我就没有滑梯了。没有确认,我得到一个。 也就是说,只需删除if(confirm){}代码块

   if (confirm('Are you sure you want to remove the item?')) {
        dragbox.slideUp('fast', function () {
            dragbox.remove();
            WebService.RemoveItem(itemId,
            //on success
                function () {
                    if ($('.dragbox').length == 0) {
                        //remove columns
                        $('.column').remove();
                    }
                },
            //on fail
                function () {
                    alert('Failed to remove the "' + itemName + '" item.');
                }
            );
        });
    }
在本例中,使用“确认”按钮,在隐藏div之后和淡入开始之前有一个延迟,因此div的隐藏时间比我希望的要长。没有确认,ti的行为与我预期的一样

        if (confirm('Are you sure?')) {
            $('#' + itemId).spin();
            WebService.AddItem(itemId,
            //onsuccess
                function (r) {
                    var item = $('#' + itemId); //this is a div
                    item.unspin();

                    item
                        .hide()
                        .toggleClass('item-added')
                        .fadeIn('fast', function () {
                            // Create the DOM elements
                            $('<p><img class="item-added" src="images/item-added.png" />')
                            // Sets the style of the elements to "display:none"
                            .hide()
                                // Appends the hidden elements to the "posts" element
                            .appendTo($('.contentInfo', item))
                                // Fades the new content into view
                            .fadeIn('fast');
                        });

                },
            //onfail
                function () {
                    $('#' + itemId).unspin();
                    alert('Failed');
                }
            );
        }
if(确认('you sure?')){
$('#'+itemId).spin();
WebService.AddItem(itemId,
//成功
功能(r){
var item=$('#'+itemId);//这是一个div
项目1.unpin();
项目
.hide()
.toggleClass('item-added')
.fadeIn('fast',function(){
//创建DOM元素
$(“”)
//将元素的样式设置为“显示:无”
.hide()
//将隐藏元素附加到“posts”元素
.appendTo($('.contentInfo',item))
//将新内容淡入视图
.fadeIn(“快速”);
});
},
//失败
函数(){
$('#'+itemId).unpin();
警报(“失败”);
}
);
}
根据我的推测和例子,有人能证实或反驳这个观点吗? 有哪些浏览器的替代方案


编辑:是的,我不确定发生了什么。

您使用的是最新版本的jQuery UI吗?你也有jQueryUI样式表吗?
一切看起来都很好。如果您在这里找不到答案,请打开一个bug报告。

更新Chrome可以修复此问题。我现在运行的是15.0.874.120版,一切正常。我的话。

几年前我写的一些代码也有同样的经历。现在它在基于webkit的浏览器中有一个问题

我使用confirm()调用暂停了几个动画,随后的动画无法正确显示。我最终发现,如果我在动画之前稍加延迟,它就会正常工作

  if (confirm('Are you sure?')) {
    dragbox.delay(10).slideUp('fast', function () { ...

我不太清楚为什么会这样,但我的动画现在在Safari 6.0.3和Chrome 26.0.1410.43中再次工作了

我使用的是1.6.2,我不确定在这种情况下我是否需要jquery ui样式表。好的,看来浏览器确认了围绕javascript代码的运行,使得jquery动画在某种程度上干扰了动画。。。如果我不使用浏览器确认,动画在chrome中可以正常工作。这在firefox tho中不是问题。我是否正确理解您在动画启动后要求确认?如果用户不确认,是否取消?(我想这就是你所说的“包装”)你能不能不简单地确认然后启动动画?(我想,一个例子在这里可能会有很大帮助)你有jQuery,备选方案:使用jQuery模式对话框(jQuery UI)而不是丑陋的确认器上述代码在firefox和IE中运行良好且一致。