Module with helper functions to initialize or reinitialize a Slick carouselFirst “Revealing Module” implementationMini school database with JS revealing module patternRock-Paper-Scissors with the revealing module patternRock, Paper, Scissors, and the Revealing Module PatternGoogle Maps API implementation with a revealing module patternClipboard support in jQuery using revealing module patternPig Dice Game: Luck game to get to 100 pointsReusable carousel slider component using the revealing module patternJavascript 5 Module Pattern internal nameImage carousel with jQuery 3.3.1
Add an angle to a sphere
Is this relativistic mass?
Copycat chess is back
Finding files for which a command fails
Can a planet have a different gravitational pull depending on its location in orbit around its sun?
Does the average primeness of natural numbers tend to zero?
Is ipsum/ipsa/ipse a third person pronoun, or can it serve other functions?
Is Fable (1996) connected in any way to the Fable franchise from Lionhead Studios?
Could a US political party gain complete control over the government by removing checks & balances?
Lied on resume at previous job
Shall I use personal or official e-mail account when registering to external websites for work purpose?
What does 'script /dev/null' do?
Why do UK politicians seemingly ignore opinion polls on Brexit?
Is this food a bread or a loaf?
Are cabin dividers used to "hide" the flex of the airplane?
Manga about a female worker who got dragged into another world together with this high school girl and she was just told she's not needed anymore
How can I add custom success page
Why airport relocation isn't done gradually?
Are objects structures and/or vice versa?
Check if two datetimes are between two others
What is the command to reset a PC without deleting any files
How would photo IDs work for shapeshifters?
How to deal with fear of taking dependencies
What do you call something that goes against the spirit of the law, but is legal when interpreting the law to the letter?
Module with helper functions to initialize or reinitialize a Slick carousel
First “Revealing Module” implementationMini school database with JS revealing module patternRock-Paper-Scissors with the revealing module patternRock, Paper, Scissors, and the Revealing Module PatternGoogle Maps API implementation with a revealing module patternClipboard support in jQuery using revealing module patternPig Dice Game: Luck game to get to 100 pointsReusable carousel slider component using the revealing module patternJavascript 5 Module Pattern internal nameImage carousel with jQuery 3.3.1
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
I been getting into javascript patterns and would love to get some feedback. I notice that I got some general helper functions. Is this a good approach of dealing with it?
// carousel.js
var Carousel = (function()
var timeout = 340;
function init()
applyForTheseQueries();
$(window).on('resize', Helpers.debounce(function()
applyForTheseQueries();
, timeout));
function applyForTheseQueries()
var $carousel = $('.js-slick');
var query = $carousel.data('query');
var mediaQuery = Helpers.executeFunctionByName(query, window);
if (mediaQuery && !$carousel.hasClass('init-done'))
$carousel.addClass('init-done').slick();
else if (!mediaQuery && $carousel.hasClass('init-done'))
$carousel.removeClass('init-done').slick('unslick');
return
init: init
;
)();
$(function()
Carousel.init();
);
// helpers.js
var Helpers = (function()
function executeFunctionByName(functionName, context)
var args = [].slice.call(arguments).splice(2);
var namespaces = functionName.split(".");
var func = namespaces.pop();
for (var i = 0; i < namespaces.length; i++)
context = context[namespaces[i]];
return context[func].apply(context, args);
function debounce(func, wait, immediate)
var timeout;
return function()
var context = this;
var args = arguments;
var later = function()
timeout = null;
if (!immediate) func.apply(context, args);
;
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
;
;
return
executeFunctionByName: executeFunctionByName,
debounce: debounce
;
)();
javascript revealing-module-pattern
$endgroup$
bumped to the homepage by Community♦ 9 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
$begingroup$
I been getting into javascript patterns and would love to get some feedback. I notice that I got some general helper functions. Is this a good approach of dealing with it?
// carousel.js
var Carousel = (function()
var timeout = 340;
function init()
applyForTheseQueries();
$(window).on('resize', Helpers.debounce(function()
applyForTheseQueries();
, timeout));
function applyForTheseQueries()
var $carousel = $('.js-slick');
var query = $carousel.data('query');
var mediaQuery = Helpers.executeFunctionByName(query, window);
if (mediaQuery && !$carousel.hasClass('init-done'))
$carousel.addClass('init-done').slick();
else if (!mediaQuery && $carousel.hasClass('init-done'))
$carousel.removeClass('init-done').slick('unslick');
return
init: init
;
)();
$(function()
Carousel.init();
);
// helpers.js
var Helpers = (function()
function executeFunctionByName(functionName, context)
var args = [].slice.call(arguments).splice(2);
var namespaces = functionName.split(".");
var func = namespaces.pop();
for (var i = 0; i < namespaces.length; i++)
context = context[namespaces[i]];
return context[func].apply(context, args);
function debounce(func, wait, immediate)
var timeout;
return function()
var context = this;
var args = arguments;
var later = function()
timeout = null;
if (!immediate) func.apply(context, args);
;
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
;
;
return
executeFunctionByName: executeFunctionByName,
debounce: debounce
;
)();
javascript revealing-module-pattern
$endgroup$
bumped to the homepage by Community♦ 9 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
$begingroup$
I been getting into javascript patterns and would love to get some feedback. I notice that I got some general helper functions. Is this a good approach of dealing with it?
// carousel.js
var Carousel = (function()
var timeout = 340;
function init()
applyForTheseQueries();
$(window).on('resize', Helpers.debounce(function()
applyForTheseQueries();
, timeout));
function applyForTheseQueries()
var $carousel = $('.js-slick');
var query = $carousel.data('query');
var mediaQuery = Helpers.executeFunctionByName(query, window);
if (mediaQuery && !$carousel.hasClass('init-done'))
$carousel.addClass('init-done').slick();
else if (!mediaQuery && $carousel.hasClass('init-done'))
$carousel.removeClass('init-done').slick('unslick');
return
init: init
;
)();
$(function()
Carousel.init();
);
// helpers.js
var Helpers = (function()
function executeFunctionByName(functionName, context)
var args = [].slice.call(arguments).splice(2);
var namespaces = functionName.split(".");
var func = namespaces.pop();
for (var i = 0; i < namespaces.length; i++)
context = context[namespaces[i]];
return context[func].apply(context, args);
function debounce(func, wait, immediate)
var timeout;
return function()
var context = this;
var args = arguments;
var later = function()
timeout = null;
if (!immediate) func.apply(context, args);
;
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
;
;
return
executeFunctionByName: executeFunctionByName,
debounce: debounce
;
)();
javascript revealing-module-pattern
$endgroup$
I been getting into javascript patterns and would love to get some feedback. I notice that I got some general helper functions. Is this a good approach of dealing with it?
// carousel.js
var Carousel = (function()
var timeout = 340;
function init()
applyForTheseQueries();
$(window).on('resize', Helpers.debounce(function()
applyForTheseQueries();
, timeout));
function applyForTheseQueries()
var $carousel = $('.js-slick');
var query = $carousel.data('query');
var mediaQuery = Helpers.executeFunctionByName(query, window);
if (mediaQuery && !$carousel.hasClass('init-done'))
$carousel.addClass('init-done').slick();
else if (!mediaQuery && $carousel.hasClass('init-done'))
$carousel.removeClass('init-done').slick('unslick');
return
init: init
;
)();
$(function()
Carousel.init();
);
// helpers.js
var Helpers = (function()
function executeFunctionByName(functionName, context)
var args = [].slice.call(arguments).splice(2);
var namespaces = functionName.split(".");
var func = namespaces.pop();
for (var i = 0; i < namespaces.length; i++)
context = context[namespaces[i]];
return context[func].apply(context, args);
function debounce(func, wait, immediate)
var timeout;
return function()
var context = this;
var args = arguments;
var later = function()
timeout = null;
if (!immediate) func.apply(context, args);
;
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
;
;
return
executeFunctionByName: executeFunctionByName,
debounce: debounce
;
)();
javascript revealing-module-pattern
javascript revealing-module-pattern
edited Feb 21 '17 at 15:26
200_success
131k17157422
131k17157422
asked Feb 21 '17 at 13:36
Dejan.SDejan.S
1463
1463
bumped to the homepage by Community♦ 9 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
bumped to the homepage by Community♦ 9 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
Yes, this is a nice, clean way to do it. I do not see smth wrong here. You have your helper methods isolated, they are exposed correctly, and the methods within are dry, they only care for what they get from arguments, and they return one thing only.
Maybe you have to get sure that nothing breaks if init() gets called for more than one times, that is the one thing I would suggest.
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
);
);
, "mathjax-editing");
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "196"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f155931%2fmodule-with-helper-functions-to-initialize-or-reinitialize-a-slick-carousel%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Yes, this is a nice, clean way to do it. I do not see smth wrong here. You have your helper methods isolated, they are exposed correctly, and the methods within are dry, they only care for what they get from arguments, and they return one thing only.
Maybe you have to get sure that nothing breaks if init() gets called for more than one times, that is the one thing I would suggest.
$endgroup$
add a comment |
$begingroup$
Yes, this is a nice, clean way to do it. I do not see smth wrong here. You have your helper methods isolated, they are exposed correctly, and the methods within are dry, they only care for what they get from arguments, and they return one thing only.
Maybe you have to get sure that nothing breaks if init() gets called for more than one times, that is the one thing I would suggest.
$endgroup$
add a comment |
$begingroup$
Yes, this is a nice, clean way to do it. I do not see smth wrong here. You have your helper methods isolated, they are exposed correctly, and the methods within are dry, they only care for what they get from arguments, and they return one thing only.
Maybe you have to get sure that nothing breaks if init() gets called for more than one times, that is the one thing I would suggest.
$endgroup$
Yes, this is a nice, clean way to do it. I do not see smth wrong here. You have your helper methods isolated, they are exposed correctly, and the methods within are dry, they only care for what they get from arguments, and they return one thing only.
Maybe you have to get sure that nothing breaks if init() gets called for more than one times, that is the one thing I would suggest.
answered Jan 13 '18 at 19:08
JohnPanJohnPan
1862
1862
add a comment |
add a comment |
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f155931%2fmodule-with-helper-functions-to-initialize-or-reinitialize-a-slick-carousel%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown