javascript - jQuery 的多个 div 创建/销毁错误

标签 javascript jquery html css webkit

我在 Webkit 浏览器上混合了 CSS3/HTML5/Javascript(虽然没有尝试过任何其他浏览器)。

试试这个 fiddle : http://jsfiddle.net/tbergeron/XHQxH/

尽可能快地将鼠标悬停在多个“图 block ”上,您会发现它有时会停止工作。

JavaScript 代码是:

 $('.tile').one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function() {
    var tile = this;

    // Hide Title label
    $(tile).find('.title').hide();

    var bigTileHtml = '<div class="bigTile">';
    bigTileHtml = bigTileHtml + '<div class="title">Tile Title Holy Cow Yeah</div>';
    bigTileHtml = bigTileHtml + '<div class="description">Tile description goes here.</div>';
    bigTileHtml = bigTileHtml + '</div>';

    // Create a new bigTile
    var bigTile = $(bigTileHtml).appendTo('.tiles');

    // Sets bigTile's position
    var position = $(this).position();
    bigTile.css('top', position.top + 4);
    bigTile.css('left', position.left + 4);

    bigTile.mouseout(function() {
        // Show Title label
        $(tile).find('.title').show();
        bigTile.remove();
    });

    bigTile.show();
});

对于 HTML/CSS(这对诊断来说用处不大)请查看我在此处链接的 fiddle 。

编辑:问题似乎是“webkitTransitionEnd”只被触发一次。所以下次转换结束时,什么也不会被调用。我想知道:有什么方法可以重置此行为,以便在它结束时重置并可以再次触发?

所以要继续,当您多次将鼠标悬停在许多图 block 上时,它会停止显示粉红色的 div。

感谢任何愿意花时间帮助我的人。

/汤米

最佳答案

粉红色的 div 只显示一次,因为您的函数只为每个图 block 调用一次。这是因为您正在使用 one()事件处理程序。

您的代码执行以下操作:

  • 在平铺悬停时执行 css 动画
  • 一旦动画完成,事件监听器功能就会被触发(但只有在每个图 block 的动画第一次结束时)
  • 您的事件监听器函数创建了粉色图 block ,并向这个新图 block 添加了一个事件监听器,以便在光标离开图 block 时触发
  • 当这个函数被触发时,粉红色的瓷砖被删除

所有这些都可以通过 css3 实现。我已经更新了您的 jsfiddle 代码,以向您展示如何使用悬停和过渡仅使用 css3 来执行此操作。然后,如果您愿意,可以使用一些 javascript 动态更新悬停磁贴的内容:
http://jsfiddle.net/XHQxH/9/

关于javascript - jQuery 的多个 div 创建/销毁错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12738897/

相关文章:

javascript - 在 javascript 中将 Date() 舍入到最接近的 5 分钟

javascript - 是否可以根据 Mustache 中的哈希值切换模板部分?

jquery - .animate() 行为怪异(重复动画)(jQuery)

javascript - js在ajax本身回调后停止点击函数后续执行

html - 如何在手机上获得全宽背景?

html - 有些@media 查询有效,有些则无效

javascript - 这是什么意思 : if( variable ){/* do something */}

javascript - 主干集合和多个 subview 设计问题

javascript - 未捕获的 TypeError 对象 [对象对象] 没有方法 'datepicker'

javascript - 在使用 Highcharts 打印之前调整图表大小