/ Published in: jQuery
Element level overrides; the elemental awareness? what the d&d?
Expand |
Embed | Plain Text
HTML: <dl class="tabbedDL" data-settings='{ "sup": "dudes" }'> <dt>Term</dt> <dd>Description</dd> <dt>Term</dt> <dd>Description</dd> </dl> JS: ;(function($, window) { var document = window.document, _config = { debugMode: true }; console.note = function(o) { if (_config.debugMode) { console.log(o); } if (_config.debugMode && (typeof(console === "undefined") || typeof(console.log == "undefined"))) { // var console; variable hoist'd; woops console.log = function() {}; } }; $.tabbedDL = function(c, _params) { var $self = $(c), // internal defaults (test defaults); _defaults = { whatever: 1 }, // internal settings _settings = (function(_params) { console.note('Set by argument parameters (init)'); _params['settingsType'] = 'P'; return _params; })(_params) || (function(_defaults) { //console.note('Set by plugin defaults (init)'); _defaults['settingsType'] = 'D'; return _defaults; })(_defaults); if (typeof($self.attr("data-settings")) === 'undefined' || (typeof($self.attr("data-settings")) === 'string' && String($self.attr("data-settings")) === '' )) { $self.data("data-settings", _settings); } return $self.each(function(index, e) { var $self = $(this), // new pattern? _settings = ($self.data("data-settings")) ? $self.data("data-settings") : (function() { //console.note("Set by element meta-data (override)"); var em = $.parseJSON($self.attr("data-settings")); em['settingsType'] = 'E'; return em; }()); //console.note(_settings); //console.log(typeof(_settings)); }); }; })(jQuery, window); $.tabbedDL("dl.tabbedDL", { monkey: 2 }); $(function() { //console.log('ee'); });
You need to login to post a comment.
