Javascript 扩展/';折叠全部与单个
我在扩展/折叠菜单时遇到问题。在菜单上,我尝试做两件事:首先是展开/折叠所有。那很好用。作为参考,我的代码如下:Javascript 扩展/';折叠全部与单个,javascript,jquery,html,Javascript,Jquery,Html,我在扩展/折叠菜单时遇到问题。在菜单上,我尝试做两件事:首先是展开/折叠所有。那很好用。作为参考,我的代码如下: $("#expandAll dt a").click(function () { $("dd").slideToggle(); }); function excol() { $("#expand dt a").click(function () { $(this).parent().siblings("
$("#expandAll dt a").click(function () {
$("dd").slideToggle();
});
function excol() {
$("#expand dt a").click(function () {
$(this).parent().siblings("dd").slideToggle();
});
}
我只是要求它将slidetoggle函数应用于所有dd标记
我还想展开列表中的一个项目,而其余项目保持折叠状态。然而,当我这样做的时候,它会扩展整个列表,除了我想要的那一个,我正在寻找的完全相反的行为。单件的代码如下所示:
$("#expandAll dt a").click(function () {
$("dd").slideToggle();
});
function excol() {
$("#expand dt a").click(function () {
$(this).parent().siblings("dd").slideToggle();
});
}
我的“this”语句应该是“向上/向下切换带有标记dd的单个元素,该标记dd是该元素父元素的兄弟元素”。问题是,它会切换除我要切换的dd之外的每个dd
以下是相关的jquery代码:
//Upon successful ajax call
success: function (data) {
excol();
$("#expandAll dt a").click(function () {
$("dd").slideToggle();
});
},
});
}
function excol() {
$("#expand dt a").click(function () {
$(this).parent().siblings("dd").slideToggle();
});
}
以下是html代码:
<div id="expandAll">
<dl>
<dt>
<a style="font-size: 12px; color: black;" href="#">Expand/Collapse All</a>
</dt>
</dl>
<div id="expand">
<div id="mhsPrograms">
<div id="MHS">
</div>
</div>
<br />
</div>
</div>
我想我已经很接近解决方案了,但是在某个我没有看到的地方有一个冲突。任何帮助都将不胜感激。明白了!问题是expand all函数的位置。我没有把所有的代码都放在这里,因为我不认为这是相关的…我现在看到了我的方式的错误,并将张贴它所有。无论如何,我需要做的是将expand/collapseall函数放入我的documentready函数中。因此,我的代码如下所示:
$(document).ready(function () {
//Call process function
processListItems(Url, Listname);
excolAll();
//*************************
//processListItems function
//*************************
});
exolAll()是问题函数。我仍然不完全理解操作,但现在它可以工作了
完整代码如下所示,以供参考:
$(document).ready(function () {
//Call process function
processListItems(Url, Listname);
excolAll();
//*************************
//processListItems function
//*************************
});
function processListItems(url, listname, complete, failure) {
// Executing our items via an ajax request
$.ajax({
url: url + "/_api/web/lists/getbytitle('" + listname + "')/items? $orderby=SortOrder",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
//Upon successful ajax call
success: function (data) {
ewiArray(data);
excol();
//excolAll();
joinAll();
},
});
}
//complete(data);// Returns JSON collection of the results
//Function for expanding/collapsing menu
function excol() {
$("#expand dt a").click(function () {
$(this).parent().siblings("dd").slideToggle();
});
}
//Function for expanding/collapsing all
function excolAll() {
$("#expandAll dt a").click(function () {
$("dd").slideToggle();
});
}
//Function for joining EWI program to its associated description
function joinAll() {
$("button").click(function () {
var fired_button = $(this).val();
sessionStorage.setItem('ewiNum', fired_button);
window.location.href = "Application.aspx";
return false;
});
}
编辑:当我分别试用这两个函数时,它们都可以工作。但是当我把扩展全部包括进来的时候,问题就开始了,因此我没有看到可能的冲突。