事件绑定如何在JavaScript中运行?

时间:2015-07-21 12:33:18

标签: javascript jquery javascript-events

我准备询问如何在JavaScript原型中绑定(jQuery)事件。所以我创建了一个片段,希望它不能像我预期的那样工作。

然而它确实如此,而且由于我不想让代码片段浪费,我会提出另一个问题:)

为什么会这样? initEvent()方法是否在对象内创建了事件的属性 - 在console.log( test );中找不到它?



function rgb2hex(rgb) {
  rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);

  function hex(x) {
    return ("0" + parseInt(x).toString(16)).slice(-2);
  }
  return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
}

function TestPrototype(container) {
    this.container = container;
  } // TestPrototype 'constructor'

TestPrototype.prototype.initEvent = function() {
    var _that = this;
    $("body").on("click", this.container, function() {
      var rgb = $(_that.container).css("background-color");
      var hex = rgb2hex(rgb).toUpperCase();
      if (hex == "#FF0000")
        $(_that.container).css("background", "#0000FF");
      else
        $(_that.container).css("background", "#FF0000");
    });
  } // initEvent

var test = new TestPrototype("#test");
test.initEvent();

#test {
  width: 100px;
  height: 100px;
  background: #F00;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="test" title="Click on me">
</div>
&#13;
&#13;
&#13;

0 个答案:

没有答案