-1

オブジェクトのメソッドを要素のイベントにバインドしたい。例えば:

function ABC()
{
   this.events_list = function() {
   }

   this.events_list.clickElement = function() {
      alert("hello world");
   }

   this.bindEvents() = function() {
       $("#element").click(this.events_list.clickElement);
   }
}

var _abc = ABC();
_abc.bindEvents();

上記のコードは、クリック イベントをclickElementメソッドにバインドしていません。

4

3 に答える 3

2
this.bindEvents() = function() {

最初のセットのか​​っこを取り出してください。意味がありません。

this.bindEvents = function() {

新しいオブジェクトnew ABC()を構築するためにも使用する必要があります。単独でグローバル オブジェクトにバインドされますが、これは絶対に望んでいるものではありません。ABCABC()this

また、this.events_list実際には関数ではなく、他の関数のコンテナーであると想定されている場合は、関数にしないでください。

this.events_list = {};

最後に、セミコロンを使用することを忘れないでください。

于 2012-08-05T17:30:35.473 に答える
1

を呼び出す#element前に存在します_abc.bindEvents()。全部包み込める

$(document).ready(function() {
    var _abc = ABC();
    _abc.bindEvents();
});

function ABC()
{
   this.events_list = function() {
   }

   this.events_list.clickElement = function() {
      alert("hello world");
   }

   this.bindEvents() = function() {
       $("#element").click(this.events_list.clickElement);
   }
}

もっと多くのことを行うには、ユースケースをもっと見る必要があります。

于 2012-08-05T17:32:21.683 に答える
0

jQuery プラグインは頭痛の種から解放され、簡単に作成できます。

<input type="checkbox" name="chk1" class="clickable" />check me<br />
<div name="item 2" class="clickable">click me<div>

上記の各項目をクリック可能にするには:

(function( $ ) {
  $.fn.bindevents = function() {

   events_list = {
    clickElement : function() {
            alert("hello world from " + $(this).attr('name'));
    }
   };

   this.each(function() {
    $(this).bind('click', events_list.clickElement);
   });

 };
})( jQuery );

$('.clickable').bindevents();
于 2012-08-05T17:50:37.883 に答える