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属性にアクセスすることでしたが、代わりにこのオブジェクトはボタンを指しています。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 に答える