Comments (7)
@timmywil That's a great idea!
from hideshowpassword.
Hey @timmywil, maybe you can help me with something... I'm a designer first and a developer second, so it's hard for me to judge the best way to tackle this from a developer perspective... especially since I've never used RequireJS before!
hideShowPassword works with either jQuery or Zepto. This is easy enough in the current version of the plugin, as I can just pass this.jQuery || this.Zepto
for the $
argument and call it a day. But in the case of defining dependencies, it looks like I have to be a bit more overt.
This post suggests doing something like this:
define(('__proto__' in {} ? ['zepto'] : ['jquery']), function($) {
return $;
});
This makes sense to me if your library overtly recommends the use of both Zepto and jQuery, but my goal in writing the plugin that way was flexibility... I would guess most users will be favoring jQuery, so it seems a pretty big assumption to say "when '__proto__' in {}
returns something truthy, always use Zepto."
I apologize if this is a newb question, but how would you recommend supporting both frameworks?
from hideshowpassword.
No problem! I'd recommend something like this:
(function (factory, global) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
// To use Zepto, map Zepto to the the name 'jquery' in your paths config
define(['jquery'], factory);
} else {
// Browser globals
factory(global.jQuery || global.Zepto);
}
}(function ($) {
// hideShowPassword code here
}, this));
AMD folks who use Zepto are used to mapping zepto already because Zepto doesn't register as an AMD module (much to the objection of Zepto's users and the front-end community). I would simply document that using zepto instead is a matter of path config:
require.config({
paths: {
jquery: 'path/to/zepto'
}
});
This will map Zepto to the name 'jquery' and the define call will pull in Zepto for the $
variable instead.
from hideshowpassword.
@timmywil Perfect. Thanks so much for the detailed explanation... knowledge is awesome. :)
from hideshowpassword.
@timmywil Okay, I think I have this working... but just in case, I pushed to an amd-support branch.
If you get a moment, would you mind taking a look or giving it a whirl before I unleash it on an unsuspecting populace?
from hideshowpassword.
👍 I just tested and it works great! Thanks!
from hideshowpassword.
@timmywil Sweet! Branch merged, release tagged, and bob's your uncle. Thanks again for your help.
from hideshowpassword.
Related Issues (20)
- Auto left and right margins not inherited in Firefox HOT 1
- Wrapper margins are still inherited even when not included in the wrapper object's inheritStyles array HOT 4
- Rely more on CSS and less on JS for styles
- Split basic hide/show functionality from toggle UI
- Rendering issue when displayed on a modal form. HOT 2
- browserify require is broken when jQuery versions mismatch HOT 5
- Modernizr >= 2 and >= 3 use touchevents insted touch HOT 3
- Bower install fails HOT 5
- Can we do this with just CSS in supported browsers?
- Attach to hover event HOT 4
- Can't change button title "Show Password" HOT 2
- hideToggleUntil is not documented HOT 3
- Possibility to use existing wrapper (parent) element HOT 1
- Some of the demo doesn't work on Windows 8.1 touchscreen PC in Chrome, Firefox HOT 23
- Disable added inline styles HOT 2
- jquery dependency in wordpress HOT 2
- Keyboard focus lost on toggle in iOS Safari 12.1.2
- About this plugin, how can the focus skip the display password button after pressing the [TAB] key? HOT 1
- Configure globally HOT 5
- Classes should be in kebab-case HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hideshowpassword.