Jquery 滑动切换数据库中的数据

Jquery 滑动切换数据库中的数据,jquery,html,Jquery,Html,我有一个从外部获取数据的页面。在生成的每个表行中,我插入了一个带有更多选项的下拉列表。这些下拉列表保持可见,直到再次单击链接或用户单击页面外。但是,如果选定的子菜单已关闭(如图所示),并且用户单击“下一行”选项,则会出现两个下拉菜单,即,原始菜单不会切换回原来的菜单 我使用的Jquery是: var userRef = "tr." + userId $(userRef + "ul.topnav a.sacton").click(function(e) { $(this).paren

我有一个从外部获取数据的页面。在生成的每个表行中,我插入了一个带有更多选项的下拉列表。这些下拉列表保持可见,直到再次单击链接或用户单击页面外。但是,如果选定的子菜单已关闭(如图所示),并且用户单击“下一行”选项,则会出现两个下拉菜单,即,原始菜单不会切换回原来的菜单

我使用的Jquery是:

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;注意;