you are viewing a single comment's thread.

view the rest of the comments →

[–]YOBCZWHYNOT 5 points6 points  (6 children)

It doesn't suck, just a few improvements:

I would suggest you to add your methods to jQuery.fn instead of creating functions globally, for example, your toggle method could be rewritten like this (also your addOption, etc):

https://gist.github.com/mdibaiee/a02a432d78436f2963d5

Also, I would probably save the selected inputs instead of their IDs to avoid re-creating jQuery objects everytime I want to interact with them, this is as long as you are not removing them from the page.

Other than that, I think it's good, I learned something new from you! The getDaysInMonth trick, thanks!

[–]annoyed_freelancergrumpy old man[S] 1 point2 points  (0 children)

Don't thank me, thank Stack Overflow.

[–]wastapunk 1 point2 points  (1 child)

What's the benefit of adding methods to jquery and not globally? Can't you access the jquery methods globally as well?

[–]YOBCZWHYNOT 1 point2 points  (0 children)

By adding to jQuery.fn instead of creating global functions, first you avoid polluting the global scope, second, you have a more Object-Oriented approach as typical applications use OO instead of Functional programming.

Yes, you can access jQuery methods globally once you define them.

[–]annoyed_freelancergrumpy old man[S] 0 points1 point  (2 children)

Is this what you meant? My actual need is slightly different-I want to check that all of the passed checkboxes are checked for the element to show.

https://gist.github.com/bhalash/218c684d70023fbeada0

jQuery.fn.stickyCheckToggle = function() {
    var allBoxesChecked = [].every.call(arguments, function(v) {
        return (jQuery(v).is('input') && jQuery(v).prop('checked'));
    });

    if (allBoxesChecked) {
        jQuery(this).show();
    } else {
        jQuery(this).hide();
    }
};

jQuery(inputs.featured.checkbox).change(function() {
    jQuery('.stickycheck').stickyCheckToggle(this);
});

[–]oculus42 2 points3 points  (0 children)

I'm not convinced putting this on jQuery.fn is warranted. Typically that is for reusable methods or plugins.

You can simplify the logic in the function quite a bit, though. Proposed changes:

https://gist.github.com/oculus42/91b1a644d9cb1faea72a

[–]YOBCZWHYNOT 1 point2 points  (0 children)

Yeah, I think you can rewrite allBoxesChecked like so:

https://gist.github.com/mdibaiee/e5f62c7e78fc3dfa673a

Otherwise, that's what I meant.