2012-06-28 40 views
0

我有简单的JavaScript代码段:如何在点击后获取整个对象作为响应?

var obrazek = [{nazwa: "Sniadanie", wiek: 100, autor: "Alicja"},{nazwa: "Kolacja", wiek: 10, autor: "Misiek"}]; 

function galeria(nazwa, wsad) { 
    this.nazwa = nazwa; 
    this.wsad = wsad; 
    this.print = function(element) { 
     for (var i=0;i<this.wsad.length;i++) { 
      var text = "<li>"+this.wsad[i].nazwa+"</li>" 
      element.append(text); 
     } 
    } 
} 
$(document).ready(function() { 
    gal = new galeria('test', obrazek); 
    gal.print($('#galeriaTest')) 
}); 

它给我:

  • Sniadanie
  • Kolacja
  • 我要的是简单的方法,将click事件之后返回对象:

    Object { nazwa="Sniadanie", wiek=100, autor="Alicja"} (in FireBug) 
    

    如何编码?

    +0

    稍微偏离主题,但我建议你大写你的构造函数的名字,并将方法移动到原型。 – Lapple

    回答

    1

    只要你的数据集是静态的,你可以只对象使用data()功能关联到DOM元素。

    Here's an example

    如果您的数据集是动态的,您仍然可以将对Galeria和某些ID类型信息的引用关联起来,以获得类似的改进结果。

    +0

    太棒了!这是我正在寻找的。你能告诉我你的动态数据是什么意思吗? – Odoakr

    +0

    我只是说,如果你的数据集是异步更新的,你需要确保对它的引用保持同步。例如,你不希望Galeria中的对象替换为另一个对象,而是让列表项仍然引用旧对象。但在很多情况下,这不是你需要担心的。 – Brendan

    0
    $("selector").on('click', function(e){ 
        console.log(obrazek); // would put object in a console, you can check it via firebug 
    }); 
    
    +0

    谢谢!那么,我不是很精确。我只想看到被点击的物体 – Odoakr