Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Drupal-Tinynav js_Javascript_Jquery_Drupal_Drupal 7 - Fatal编程技术网

Javascript Drupal-Tinynav js

Javascript Drupal-Tinynav js,javascript,jquery,drupal,drupal-7,Javascript,Jquery,Drupal,Drupal 7,当我的网站通过Tinynav.js模块中规定的像素阈值时,所有菜单项都会显示,它们应该减去父菜单项。我通过特殊菜单项模块将父项定义为无链接,这意味着父div只是子菜单项的占位符,不链接到任何内容。问题是当网站进入阈值时,下拉滚动菜单取代导航菜单出现,它不显示父项,只显示链接到父项的子项 似乎是因为父项被定义为“无链接”,因此Tiny.js模块跳过它,只显示子菜单。我尝试了很多方法,但都没有成功,我上传了与Tinynav.js和html相关的js,因此可以对其进行编辑 它可能是编辑此文件或其他内容

当我的网站通过Tinynav.js模块中规定的像素阈值时,所有菜单项都会显示,它们应该减去父菜单项。我通过特殊菜单项模块将父项定义为无链接,这意味着父div只是子菜单项的占位符,不链接到任何内容。问题是当网站进入阈值时,下拉滚动菜单取代导航菜单出现,它不显示父项,只显示链接到父项的子项

似乎是因为父项被定义为“无链接”,因此Tiny.js模块跳过它,只显示子菜单。我尝试了很多方法,但都没有成功,我上传了与Tinynav.js和html相关的js,因此可以对其进行编辑

它可能是编辑此文件或其他内容

谢谢你的帮助

html


  • 传统
tinynav-fork.js

/*! Originally based on the tinynav.js library found at http://tinynav.viljamis.com by @viljamis */
(function ($, window, i) {
  $.fn.tinyNav = function (options) {
    // Default settings
    var settings = $.extend({
      'active' : 'selected', // String: Set the "active" class
      'header' : false, // Boolean: Show header instead of the active item
      'indent' : '--', // String: Set this to empty to disable identing
      'depth_count' : 2 // Integer: depth to stop counting
    }, options);
    return this.each(function () {
      // Used for namespacing
      i++;
      var $nav = $(this),
        // Namespacing
        namespace = 'tinynav',
        namespace_i = namespace + i,
        l_namespace_i = '.l_' + namespace_i,
        $select = $('<select/>').addClass(namespace + ' ' + namespace_i);
      if ($nav.is('ul,ol')) {
        if (settings.header) {
          $select.append(
            $('<option value="-null-"/>').text(Drupal.t('Navigation'))
          );
        }
        // Build options
        var options = '';
        $nav
          .addClass('l_' + namespace_i)
          .find('a')
          .each(function () {
            var indent = '';
            // indent once for each parent this has
            var parent_count = $(this).parents("ul,ol").length;
            // apply indenting if found
            for (var i=1; i<parent_count; i++) {
              indent += settings.indent;
            }
            // add spacing to end if we indent at all
            if (indent != '') {
              indent += ' ';
            }
            if (parent_count < settings.depth_count) {
              options +=
                '<option value="' + $(this).attr('href') + '">' +
                indent + $(this).text() +
                '</option>';
            }
          });
        // Append options into a select
        $select.append(options);
        // Select the active item
          $select
            .find(':eq(' + (settings.header + $(l_namespace_i + ' li')
            .index($(l_namespace_i + ' .' + settings.active)) + ')'))
            .attr('selected', true);

        // Change window location
        $select.change(function () {
          if ($(this).val() != '-null-') {
            window.location.href = $(this).val();
          }
        });
        // Inject select
        $(l_namespace_i).after($select);
      }
    });
  };
})(jQuery, this, 0);
/*!最初基于在上找到的tinynav.js库http://tinynav.viljamis.com 作者@viljamis*/
(函数($,窗口,i){
$.fn.tinyNav=函数(选项){
//默认设置
变量设置=$.extend({
'active':'selected',//字符串:设置“active”类
“头”:false,//布尔值:显示头而不是活动项
'缩进':'-',//字符串:将此设置为空以禁用标识
“depth\u count”:2//整数:停止计数的深度
},选项);
返回此。每个(函数(){
//用于名称空间
i++;
var$nav=$(此),
//名称空间
命名空间='tinynav',
名称空间_i=名称空间+i,
l_namespace_i='.l_'+namespace_i,
$select=$('').addClass(命名空间+''+命名空间i);
如果($nav.is('ul,ol')){
if(settings.header){
$select.append(
$('').text(Drupal.t('Navigation'))
);
}
//构建选项
var选项=“”;
$nav
.addClass('l_u'+名称空间_i)
.find('a'))
.每个(功能){
var缩进=“”;
//为每个父级缩进一次
var parent_count=$(this).parents(“ul,ol”).length;
//如果发现缩进,则应用缩进

对于(var i=1;i来说,问题出在Tinynav.js模块中,因为它正在寻找

<a>

但特殊菜单项模块会创建一个

<span>

这是一个工作代码:

/*! http://tinynav.viljamis.com v1.03 by @viljamis 
modified by l.tagliamonte to fix Special Menu Items module menu links*/
(function ($, window, i) {
$.fn.tinyNav = function (options) {

// Default settings
var settings = $.extend({
  'active' : 'selected', // String: Set the "active" class
  'header' : false // Boolean: Show header instead of the active item
}, options);

return this.each(function () {

  // Used for namespacing
  i++;

  var $nav = $(this),
    // Namespacing
    namespace = 'tinynav',
    namespace_i = namespace + i,
    l_namespace_i = '.l_' + namespace_i,
    $select = $('<select/>').addClass(namespace + ' ' + namespace_i);

  if ($nav.is('ul,ol')) {

    if (settings.header) {
      $select.append(
        $('<option/>').text('Navigation')
      );
    }

    // Build options
    var options = '';
    var indent = 0;
    var indented = ["&nbsp;"];
    for ( var i = 0; i < 10; i++) {
      indented.push(indented[indented.length-1]+indented[indented.length-1]);
    }
    indented[0] = "";
    $nav
      .addClass('l_' + namespace_i)
      .children('li')
      .each(buildNavTree=function () {
        var a = $(this).children('a').first();
        var nolink = $(this).children('span.nolink').first();

        if (nolink.html() != null){
            options +=
          '<option value="' + nolink.html() + '" disabled>' +
          indented[indent] + nolink.html() +
          '</option>';
        }else{
        options +=
          '<option value="' + a.attr('href') + '">' +
          indented[indent] + a.text() +
          '</option>';
          }
          indent++;
          $(this).children('ul,ol').children('li').each(buildNavTree);
          indent--;
      });

    // Append options into a select
    $select.append(options);

    // Select the active item
    if (!settings.header) {
      $select
        .find(':eq(' + $(l_namespace_i + ' li')
        .index($(l_namespace_i + ' li.' + settings.active)) + ')')
        .attr('selected', true);
    }

    // Change window location
    $select.change(function () {
      window.location.href = $(this).val();
    });

    // Inject select
    $(l_namespace_i).after($select);

  }

$('option[value="'+document.location+'"]').attr("selected","selected");

});

};
})(jQuery, this, 0);

// Tinynav
jQuery(function(){
// Main Menu
jQuery('#main-menu > ul.menu').tinyNav({
    active: 'selected', // Set the "active" class
});
});
/*!http://tinynav.viljamis.com v1.03作者@viljamis
由l.tagliamonte修改以修复特殊菜单项模块菜单链接*/
(函数($,窗口,i){
$.fn.tinyNav=函数(选项){
//默认设置
变量设置=$.extend({
'active':'selected',//字符串:设置“active”类
“标题”:false//Boolean:显示标题而不是活动项
},选项);
返回此。每个(函数(){
//用于名称空间
i++;
var$nav=$(此),
//名称空间
命名空间='tinynav',
名称空间_i=名称空间+i,
l_namespace_i='.l_'+namespace_i,
$select=$('').addClass(命名空间+''+命名空间i);
如果($nav.is('ul,ol')){
if(settings.header){
$select.append(
$('').text('导航')
);
}
//构建选项
var选项=“”;
var缩进=0;
变量缩进=[“”];
对于(变量i=0;i<10;i++){
缩进推压(缩进[缩进长度-1]+缩进[缩进长度-1]);
}
缩进[0]=“”;
$nav
.addClass('l_u'+名称空间_i)
.儿童(‘李’)
.each(buildNavTree=函数(){
var a=$(this.children('a').first();
var nolink=$(this.children('span.nolink').first();
如果(nolink.html()!=null){
选择权+=
'' +
缩进的[indent]+nolink.html()+
'';
}否则{
选择权+=
'' +
缩进的[缩进]+a.文本()+
'';
}
缩进++;
$(this.children('ul,ol')。children('li')。每个(buildNavTree);
缩进--;
});
//将选项附加到选择列表中
$select.append(选项);
//选择活动项
如果(!settings.header){
$select
.find(':eq('+$(l_名称空间_i+'li'))
.index($(l_名称空间_i+'li.+settings.active))+'))
.attr('selected',true);
}
//更改窗口位置
$select.change(函数(){
window.location.href=$(this.val();
});
//注入选择
$(l_namespace_i).after($select);
}
$('option[value=“”+document.location+''“]').attr(“选定的”、“选定的”);
});
};
})(jQuery,this,0);
//蒂尼纳夫
jQuery(函数(){
//主菜单
jQuery(“#主菜单>ul.menu”).tinyNav({
active:'选定',//设置“active”类
});
});
<span>
/*! http://tinynav.viljamis.com v1.03 by @viljamis 
modified by l.tagliamonte to fix Special Menu Items module menu links*/
(function ($, window, i) {
$.fn.tinyNav = function (options) {

// Default settings
var settings = $.extend({
  'active' : 'selected', // String: Set the "active" class
  'header' : false // Boolean: Show header instead of the active item
}, options);

return this.each(function () {

  // Used for namespacing
  i++;

  var $nav = $(this),
    // Namespacing
    namespace = 'tinynav',
    namespace_i = namespace + i,
    l_namespace_i = '.l_' + namespace_i,
    $select = $('<select/>').addClass(namespace + ' ' + namespace_i);

  if ($nav.is('ul,ol')) {

    if (settings.header) {
      $select.append(
        $('<option/>').text('Navigation')
      );
    }

    // Build options
    var options = '';
    var indent = 0;
    var indented = ["&nbsp;"];
    for ( var i = 0; i < 10; i++) {
      indented.push(indented[indented.length-1]+indented[indented.length-1]);
    }
    indented[0] = "";
    $nav
      .addClass('l_' + namespace_i)
      .children('li')
      .each(buildNavTree=function () {
        var a = $(this).children('a').first();
        var nolink = $(this).children('span.nolink').first();

        if (nolink.html() != null){
            options +=
          '<option value="' + nolink.html() + '" disabled>' +
          indented[indent] + nolink.html() +
          '</option>';
        }else{
        options +=
          '<option value="' + a.attr('href') + '">' +
          indented[indent] + a.text() +
          '</option>';
          }
          indent++;
          $(this).children('ul,ol').children('li').each(buildNavTree);
          indent--;
      });

    // Append options into a select
    $select.append(options);

    // Select the active item
    if (!settings.header) {
      $select
        .find(':eq(' + $(l_namespace_i + ' li')
        .index($(l_namespace_i + ' li.' + settings.active)) + ')')
        .attr('selected', true);
    }

    // Change window location
    $select.change(function () {
      window.location.href = $(this).val();
    });

    // Inject select
    $(l_namespace_i).after($select);

  }

$('option[value="'+document.location+'"]').attr("selected","selected");

});

};
})(jQuery, this, 0);

// Tinynav
jQuery(function(){
// Main Menu
jQuery('#main-menu > ul.menu').tinyNav({
    active: 'selected', // Set the "active" class
});
});