【问题标题】:Jquery dynamic selector with variables带有变量的 Jquery 动态选择器
【发布时间】:2012-07-08 04:18:24
【问题描述】:

我目前正在学习 javascript (jquery)。我正在构建一个插件来创建简单的手风琴菜单,但在创建动态变量时遇到了问题。

(function($){

    jQuery.accordify = function(settings){

        $defaults = {
            section : null,
            content : null,
            animation: 'slide',
            speed: 500
        }

        var defaults = $defaults;
        var settings = $.extend(defaults, settings);

        $animation = {
            slide : {in : 'slideDown('+settings.speed+')', out: 'slideUp('+settings.speed+')'},
            fade : {in: 'fadeIn('+settings.speed+')', out: 'fadeOut('+settings.speed+')'}
        }

        var animation = $animation.+settings.animation; // equvilent to 'animation.slide'

        alert(animation.in); // should return 'slideUp(500)'

    }

})(jQuery);

animation 变量试图引用 settings/defaults 数组中定义的 animation.slide 的等价物,我将如何让它工作,这样我就可以调用 animation.in 而不是 animation.slide.in?.

【问题讨论】:

    标签: jquery variables dynamic


    【解决方案1】:

    我设法解决了我面临的问题,我将文字对象更改为变量并像这样调用子对象...animation[settings.animation] 有效。

    【讨论】:

      【解决方案2】:

      语法错误,注意 .和加 .+

        $animation.+settings
      

      另外注意:“in”是保留字,最好尽快改掉 https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words

      【讨论】:

      • 感谢您的提醒,我可以轻松更改这些,但我猜问题仍然存在?
      猜你喜欢
      • 2011-06-21
      • 2016-11-15
      • 2013-02-13
      • 1970-01-01
      • 2019-12-16
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多