2013-06-25 87 views
3

我無法訪問對象中的某些元素。 在我的視圖文件(又名HTML頁面)中,我正在初始化c App。訪問對象中的元素

//Yh script tags are wrapped around this 
    $(function() { 
     App.initialize(); 
    }); 

然後在我的JS文件(這是什麼實際上,我工作的一個簡單的形式):

window.App = { 
    el: { 
     slider: $("#form-slider"), 
     allSlides: $(".slide") 

    }, 
    initialize: function() { 
     this.ProductNewEvents(); 
      //bla bla 
      // and so on 
    }, 
    slideTiming: 800, 
    slideWidth: 790, 
    delegat etc 
    ProductNewEvents: function() { 
     //A whole bunch of events 
     this.el.slider.click(function() { 
      alert("Why you no work"); 
     }); 
     $("#form-slider").click(function() { 
      alert("Why you work"); 
     }); 

    }, 
    some other objs 
}; 

我在這裏的問題是,我不能叫this.el.allSlides.some的jQuery事件或this.el.slider。我們假設在任何對象中都有animateclick。我必須從DOM獲取它以將任何事件綁定到元素,例如$(".slide").animate

+0

你不能叫一個對象,只有一個功能... – dandavis

+2

雖然我能體會你想減輕一些幽默的心情在您的文章 - 不要這樣做。請清理您的帖子,並刪除與您面臨的問題無直接關係的任何「絨毛」。您也可以花幾秒鐘插入缺少的大寫字母。 – Lix

+0

從您的問題中不清楚您嘗試訪問的是什麼。你可以添加調用代碼嗎? – landons

回答

0

這取決於你在做什麼,因爲我看不到你所有的代碼。當您訪問您的App.el.slider屬性時,它在創建時擁有對$('#slider')的引用。爲了克服這個代碼可能看起來是這樣的:

window.App = { 
    el: { 
    slider: function(){ 
     $("#form-slider"); 
    }, 
    allSlides: function(){ 
     $(".slide"); 
    } 
    }, 
    initialize: function() { 
    this.ProductNewEvents(); 
    //bla bla 
    // and so on 
    }, 
    slideTiming: 800, 
    slideWidth: 790, 
    //delegat etc 
    ProductNewEvents: function() { 
    //A whole bunch of events 

    }, 
    //some other objs 
} 
App.el.slider(); 
+0

有趣的是你爲什麼要調用App.el.slider();在底部? – Skyalchemist