Jquery 滑动切换数据库中的数据
我有一个从外部获取数据的页面。在生成的每个表行中,我插入了一个带有更多选项的下拉列表。这些下拉列表保持可见,直到再次单击链接或用户单击页面外。但是,如果选定的子菜单已关闭(如图所示),并且用户单击“下一行”选项,则会出现两个下拉菜单,即,原始菜单不会切换回原来的菜单 我使用的Jquery是:Jquery 滑动切换数据库中的数据,jquery,html,Jquery,Html,我有一个从外部获取数据的页面。在生成的每个表行中,我插入了一个带有更多选项的下拉列表。这些下拉列表保持可见,直到再次单击链接或用户单击页面外。但是,如果选定的子菜单已关闭(如图所示),并且用户单击“下一行”选项,则会出现两个下拉菜单,即,原始菜单不会切换回原来的菜单 我使用的Jquery是: var userRef = "tr." + userId $(userRef + "ul.topnav a.sacton").click(function(e) { $(this).paren
var userRef = "tr." + userId
$(userRef + "ul.topnav a.sacton").click(function(e) {
$(this).parent().find("ul.subnav").slideToggle('medium');
e.stopPropagation();
htmL的一个例子是:
<tr class="<%=userId%>">
<td>Some data</td>
<td>
<ul class=topnav>
<li><a href="" class="sacton">Open me</a>
<ul class="subnav">
<li>Hidden stuff</li>
</ul>
</li>
</ul>
</td>
</tr>
一些数据
-
等等
我需要在新行上触发切换,并在上一行上关闭切换 好的,首先您可以选择不是当前项目的所有项目。因此,在单击功能中:
$('ul.subnav:not(.' + userRef + ')').hide(); //or whatever your hidding method is
$(this).parent().find("ul.subnav").slideToggle('medium');
好的,首先您可以选择不是当前项目的每个项目。因此,在单击功能中:
$('ul.subnav:not(.' + userRef + ')').hide(); //or whatever your hidding method is
$(this).parent().find("ul.subnav").slideToggle('medium');
您的演示脚本似乎有点格式错误,所以我将在这里进行最佳猜测。我注意到的两个问题包括:第一行执行中缺少分号,没有正确构建选择器,因为它在连接中缺少前导空格,并且遍历看起来好像关闭了:
var userRef = "tr." + userId;
$(userRef + " ul.topnav a.sacton").click(function(e) {
e.stopPropagation();
// A reference for inside the animation callback
var that = this;
// Slide up the currently visible subnav
$("ui.subnav:visible", $(this).closest(userRef)).slideUp("slow", function() {
// Callback after slideUp is complete
$(that).siblings("ul").slideDown("slow");
});
});
您的演示脚本似乎有点格式错误,所以我将在这里进行最佳猜测。我注意到的两个问题包括:第一行执行中缺少分号,没有正确构建选择器,因为它在连接中缺少前导空格,并且遍历看起来好像关闭了:
var userRef = "tr." + userId;
$(userRef + " ul.topnav a.sacton").click(function(e) {
e.stopPropagation();
// A reference for inside the animation callback
var that = this;
// Slide up the currently visible subnav
$("ui.subnav:visible", $(this).closest(userRef)).slideUp("slow", function() {
// Callback after slideUp is complete
$(that).siblings("ul").slideDown("slow");
});
});
在实际的应用程序中,我猜您的hide方法是动画的,所以您必须启动第二行作为第一行的回调。在实际的应用程序中,我猜您的hide方法是动态的,所以您必须启动第二行作为第一行的回调。反之亦然,如您所愿。var userRef=“tr.”+userId;注意;var userRef=“tr.”+userId;注意;