jquery append()在chrome调试器和IE上工作,但在chrome中不工作
jquery append() works in chrome debugger and on IE, but not in Chrome
我有一个奇怪的情况,我的代码在调试器(Chrome)中工作,也在IE 9上工作,但在Chrome和Firefox中不起作用。我所要做的就是将一堆列表元素添加到列表中。
HTML:<div id="FriendSelector">
<ul></ul>
</div>
JS:
var friends = []; //this gets loaded with about 600 friend objects (name, icon, id) earlier
function openFriendSelector() {
var $friendSelector = $('#FriendSelector');
$friendSelector.show();
bindFriends();
}
function bindFriends() {
var $list = $('#FriendSelector ul');
for (i = 0; i < friends.length; i++) {
var friend = '<li id="' + friends[i].id + '"><div><img src="' + friends[i].icon + '" class="avatar"/>' + friends[i].name+ '</div></li>';
$list.append(friend);
}
}
当我单击打开FriendSelector DIV(最初隐藏)的按钮时,我看到一个空白的DIV,但是,如果我关闭弹出窗口并重新打开它,朋友就在那里…
找到问题。数组需要几秒钟才能加载(通过ajax)。在页面加载之后,如果我等几秒钟然后打开div,它就能工作了。这就解释了为什么它能在调试器中工作。
尽量避免一次调用这么多.append()
,因此替换以下代码:
for (i = 0; i < friends.length; i++) {
var friend = '<li id="' + friends[i].id + '"><div><img src="' + friends[i].icon + '" class="avatar"/>' + friends[i].name+ '</div></li>';
$list.append(friend);
}
:
for (i = 0, friend=''; i < friends.length; i++) {
friend +='<li id="' + friends[i].id + '"><div><img src="' + friends[i].icon + '" class="avatar"/>' + friends[i].name+ '</div></li>';
}
$list.append(friend);
更新:
尝试在显示div之前加载好友,如下所示:
function openFriendSelector() {
bindFriends();
}
function bindFriends() {
var $list = $('#FriendSelector ul');
for (i = 0, friend = ''; i < friends.length; i++) {
friend = '<li id="' + friends[i].id + '"><div><img src="' + friends[i].icon + '" class="avatar"/>' + friends[i].name+ '</div></li>';
}
$list.append(friend);
$list.parent().show();
}
相关文章:
- JS可以在Chrome中工作,但不能在Firefox中工作
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- javascript window.open将无法在Chrome控制台上工作
- 如何编写在Chrome和IE中正常工作的JavaScript
- 只有当Javascript控制台在chrome上打开时,Javascript才能工作
- NaN:Firefox和IE中的NaN,CHROME工作正常
- jquery日期转换chrome工作,但IE和firefox't
- Chrome工作区无法使用源地图和Javascript
- 数组比较在Chrome工作,但不与Chrome IPAD
- 如何获得一个值从选项时选择(此代码为chrome工作)
- HTML表单与javascript得到"在IE,但在Chrome工作
- 简单的脚本与onclick事件在Chrome工作良好,但在Firefox失败
- 在Firefox剑道按钮文本不改变,而在IE和Chrome工作
- Ajax GIF加载器不工作在IE和Firefox(最新),但在Chrome工作
- Firefox返回TypeError: document.getElementById(..)为空,但Chrome工作正
- 纯Javascript: onClick切换行/图像:Firefox/Chrome -工作:IE -不工作
- 为什么if (condition) {statements} else返回;"在Chrome工作
- 我怎么能得到jsFiddle在Chrome工作
- 模态对话框与Mozilla工作,但不与Chrome工作