0

これは私のスクリプトです。何らかの理由で使用contactForm.container[contactForm.container.config.effect]();すると、「contactForm.container.config is undefined」と表示されます...定義されていることがよくわかります! 私は何を間違っていますか?ありがとうございました

<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>
4

2 に答える 2

2

configの子ではありませんcontainer。彼らは兄弟です。

あなたが望むようです:

contactForm.config.effect
于 2013-02-01T00:23:18.827 に答える
1

そうであってはなりcontactForm.configませんcontactForm.container.config。呼び出しを次のように変更します。

contactForm.container[contactForm.config.effect]();
于 2013-02-01T00:23:40.447 に答える