javascript - preventDefault 无法循环通过已移动的 <li>

标签 javascript jquery html css

我有一个 slider ,我已将它组织成一个 <ul><li> s 作为要循环的单个元素。只有第二个<li>是可见的,如果向左滚动,它会占用最后一个 <li>并将其删除,将其放在前面,如果向右滚动则反之亦然。

这是密码笔:http://codepen.io/anon/pen/kGBcr

slider 位于右侧“更多影响者”下方。问题是当我点击“关注”链接时,它会像我想要的那样更改 CSS 和文本,直到它到达 <li>。已被移除并放置在另一端。它不会阻止默认链接,只是重新加载页面。

感谢您的帮助!

旋转 slider 的函数在第 120 和 135 行。更改文本和 CSS 背景颜色的函数在第 78 行。

最佳答案

每当您使用 remove() 删除一个元素时,它就会失去其绑定(bind),您需要重新绑定(bind)事件监听器。

但是,如果您使用 appendTo() 来移动它,事件监听器将保留下来。

另一种方法是使用 detach() 函数:

var objectWithEvents = $('#old').detach();
$('#new').append(objectWithEvents);

你的情况比仅仅删除更糟糕,因为你正在使用:

html = $('element').html();
newHtml = someEl.append('<li>'+html+'</li>');

在第 127 行附近。这使情况变得更糟,因为您不仅要删除该元素,而且要获取其 html 内容,这使得保持事件监听器与其关联变得更加困难。

关于javascript - preventDefault 无法循环通过已移动的 <li>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25214226/

相关文章:

JavaScript 堆内存不足 - 插入 mongodb 时出错

javascript - Uncaught ReferenceError , "..."未定义

javascript - 动态添加json到spacetree View

javascript - 获取原始图像进行裁剪,忽略宽度属性?

html - 调整浏览器大小时 CSS 背景收缩/展开问题

javascript - 使用传递的参数单击网格中的特定单元格和行号(测试完成)

javascript - jQuery ajax 从另一台服务器加载 html

javascript - 键入时更改单词文本不同的颜色

php - getimagesize 函数无法正常工作

一旦悬停,jQuery 就会阻止 CSS 规则