Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <style>
    .standardTable { border:1px solid;padding:4px; margin: 8px;}
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
  <meta charset=utf-8 />
  <title>Binding inside of base prototypes</title>
</head>
<body>
<div id='standardTable' class='standardTable'>
  Your table goes here
</div>
  
<div id='basicPageTable' class='standardTable'>
  Your basicPageTable goes here
</div>
<div id='pageWithSectionsTable' class='standardTable'>
  Your pageWithSectionsTable goes here
</div>
<hr style="margin: 10px;"/>
<h3>Messages</h3>
<div id='msgBox' class='standardTable'>No messages yet</div>
</body>
</html>
 
  var MsgBox = {
    appendMsg: function(msg) {
      $('#msgBox').text($('#msgBox').text() + ';  ' + msg);
    }
  };
  var Table = function(tableConfig){
    var _self = this;
    var _options = $.extend({tableDiv: 'standardTable'},tableConfig);
    this.onRowClicked = function() {
      MsgBox.appendMsg('row clicked');
      if (_options.rowClickCallback){
        _options.rowClickCallback();
      }
    };
    var init = function() {
      $('#'+_options.tableDiv).click(_self.onRowClicked);
    };
    init();
  };
  var BasicPage = function(pageConfig){
    var _self = this;
    var _table;
    var _options = pageConfig || {};
    this.getTable = function() { return _table; };
    var _onRowClickedHandler = function() {
      _self.onRowClicked();
    };
    this.onRowClicked = function() {
      MsgBox.appendMsg('BasicPage onRowClicked');
    };
    var init = function() {
      var defaultTableConfig = {
        tableDiv: 'basicPageTable',
        rowClickCallback: _onRowClickedHandler
      };
      var tableConfig;
      if (_options.tableConfig) {
        tableConfig = $.extend(true, {}, defaultTableConfig, _options.tableConfig);
      } else {
        tableConfig = defaultTableConfig;
      }
      _table = new Table(tableConfig);
    };
    init();
  };
  /** @extends BasicPage **/
  var PageWithSections = function(pageConfig){
    var _self = this;
    BasicPage.call(this, pageConfig);
    /** @override **/
    this.onRowClicked = function() {
      MsgBox.appendMsg('PageWithSections onRowClicked');
    };
  };
  var basicTable = new Table();
  var basicPage = new BasicPage();
  var pageWithSections = new PageWithSections({tableConfig:{tableDiv:'pageWithSectionsTable'}});
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers