gpt4 book ai didi

jquery - 仅追加一次 Jquery

转载 作者:行者123 更新时间:2023-12-01 08:12:06 25 4
gpt4 key购买 nike

终于,我有了解决方案,但仍然有一个小问题。

我有这个 list

<ul id="tricky_list"> 
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>​

我想仅显示前 3(三个)元素,并使用此函数在鼠标悬停时显示剩余两个元素

var limit = 3;
var list = $("#tricky_list");
var more = 0;

function tricky_hide(){
var morec = 0;
$("li", list).each(function(index) {
if (index >= limit) {
$(this).hide();
morec = index - limit + 1;
}
});

if (!more) more = morec;

if (more) {
list.append('<li class="more">' + more + ' more</li>');
return true;
}
return true;
}


if (tricky_hide()) {
list.live("mouseover", function() {
$("li", list).each(function(index) {
$(this).show();
});
$("li.more", list).hide();
});

list.live("mouseout", function() {
tricky_hide();
});
}

​它工作完美,但我需要一些说明。我有这个功能

if (more) {
list.append('<li class="more">' + more + ' more</li>');
return true;
}

append <li class="more">也在鼠标移开事件上。如果我在这个元素上无限次“鼠标悬停”和“鼠标移出”,它就会无限地写入我的html文档<li class="more"> 。如何防止这种情况发生?如何仅 append 一次(即在页面加载时)此元素?

谢谢大家!

fiddle :http://jsfiddle.net/MYM2C/

最佳答案

我想说解决方案应该很简单:

li_element = list.find('li.more');
if (more && !li_element.length) {
list.append('<li class="more">' + more + ' more</li>');
return true;
} else {
li_element.show();
}

关于jquery - 仅追加一次 Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12913995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com