2014-07-02 28 views
0

我有一個多維對象是這樣的:的JavaScript/JQuery的:在對象存儲功能,並執行它

objectx = { 
    1: { 
     name: "first", 
     loadFunction: function(target) { 
      $(target).load("http://stackoverflow.com #question", function() { 
       // do something else 
      }); 
     } 
    }, 
    2: { 
     name: "second", 
     loadFunction: function(target) { 
      $(target).load("http://stackoverflow.com #answer", function() { 
       // do something else 
      }); 
     } 
    } 
} 

每個對象本身所帶來的功能加載和格式從不同的位置中的內容。但是,如何從我的程序中調用loadFunction中的函數?

順便說一句,我用simple PHP proxy加載的內容,任何人都磕磕絆絆,想知道。這個例子被簡化了。

+2

你的對象有語法錯誤。你在每個'name'屬性後都缺少'',''' –

+0

只是'objectx [1] .loadFunction(target);'?如果你想以編程的方式調用它們,一個數組循環將是更好的選擇。 – Bergi

+0

逗號在那裏,但還有另一個語法錯誤。謝謝! – user3653087

回答

0

這工作正常,我在控制檯:

var derp = {1: {func: function(msg){console.log(msg);}}} 

derp[1].func('hi'); 

在你的榜樣,我覺得主要的問題是您在loadFunction屬性之前就錯過一個逗號。所以你的目標不是你想象的那樣。

下面是一個更直接適用的示例。我只是在控制檯中執行它,所以我知道它的工作原理。

objectx = { 
    1: { 
     name: "first", 
     loadFunction: function(target) { 
      console.log('first: ' + target); 
     } 
    }, 
    2: { 
     name: "second", 
     loadFunction: function(target) { 
      console.log('second' + target); 
     } 
    } 
} 

objectx[1].loadFunction('hi'); 
> first: hi 

objectx[2].loadFunction('hi'); 
> secondhi 

也許只要你引用_對象,它不在狀態,你認爲這是。

+0

將這些東西複製並粘貼到控制檯中並執行。它工作嗎?如果是這樣,你的錯誤不在你認爲的地方。 –

+0

或者'$(target).load'是拋出'not a function'錯誤的東西?我相信這會發生,如果你的jQuery選擇器沒有找到任何東西。 –

+0

你說得對。問題是對象中的另一個語法錯誤。它現在有用,謝謝! – user3653087