为什么我不能将此字符串用作方法调用?

时间:2013-02-01 00:21:40

标签: javascript jquery

这是我的脚本,出于某些原因,当我使用contactForm.container[contactForm.container.config.effect]();时,它说“contactForm.container.config未定义”......我很清楚它的定义!我究竟做错了什么?谢谢

<script>

(function(){

  $('html').addClass('js');


 var contactForm ={

     container: $('#contact'),

     config: {
          effect:'slideToggle'
            }, 

     init: function(){
        $('<button></button>',{
           text: 'Contactame'
        })
               .insertAfter('article:first')
               .on('click', this.show);

            }, 

     show: function(){
                contactForm.close.call(contactForm.container);
                contactForm.container[contactForm.container.config.effect]();
            }, 

     close: function(){
                var $this = $(this);
                  $('<span class=close>X</span>')           
                       .prependTo(this)
                       .on('click',function(){

                                  $this.hide();

                                             })
                     } 

  };
       contactForm.init();
    })();

</script>

2 个答案:

答案 0 :(得分:2)

config不是container的孩子。他们是兄弟姐妹。

你似乎想要:

contactForm.config.effect

答案 1 :(得分:1)

应该{​​{1}}而不是contactForm.config。将通话更改为:

contactForm.container.config