0

我有以下 Javascript 文件,其中一些 html 是动态生成的:

(function ($){

NunoEstradaViwer: {
  settings: {
  total: 0,
  format: "",
  num: 0;
  },
  init: function (el, options) {
  if (!el.length) { return false; }
    this.options = $.extend({}, this.settings, options);
    this.itemIndex =0;
    this.container = el;

    this.total = this.options.total;
    this.format = ".svg";
    this.num = 0;
    this.generateHtml(el);
  },
  generateHtml: function(container){
        var bnext = document.createElement('input');
        bnext.setAttribute("type", "button");
        bnext.setAttribute("id", "bnext");
        bnext.onclick = this.nextImage();
        bnext.setAttribute("value", "Next");
        container.appendChild(bnext);

  },
  nextImage: function(){
     this.num++;


 }
 });

我想做的是访问函数内部的NunoEstradaViwer属性,而是 this 对象指向按钮。numnextImagebnext

你知道我该怎么办吗?

4

2 回答 2

1

@rahen,我尝试了您的建议,但不幸的是没有一个奏效。我发现对我有用的是一个涉及 jquery 的解决方案。我做了以下事情:

generateHtml: function(container){
    var bnext = document.createElement('input');
    bnext.setAttribute("type", "button");
    bnext.setAttribute("id", "bnext");
    bnext.setAttribute("value", "Next");
    container.appendChild(bnext);

$("#bnext").bind('click',{viewer: this}, function(event) {
            event.data.viewer.nextImage();
        });

},
nextImage: function(){
 this.num++;
}

这样我就可以访问 num 的值,并为 NunoEstradaViwer 更改它。

于 2012-05-21T17:03:18.133 回答
1

检查链接

bnext.onclick = this.nextImage; // not bnext.onclick = this.nextImage();

另一件事是

NunoEstradaViwer.num++ ;  // instead of this.num++
于 2012-05-18T17:40:02.770 回答