Comments (5)
Why would you want to throw exceptions? HoverIntent will work fine without declaring an out
function. I might only understand throwing an exception when both over
and out
are omitted, but I think I'd much prefer to just see the plugin quietly continue. What are your concerns about the current behavior?
from jquery-hoverintent.
@roydukkey I said "can we not" as in, we are and shouldn't be - hence "gracefully" in title.
I'm seeing this exception when defining only an "over" method and not an "out" method in the options:
Uncaught TypeError: Cannot read property 'apply' of undefined
delay @ jquery.hoverIntent.js:82(anonymous function) @ jquery.hoverIntent.js:108
with version 1.8.1 from Bower.
We should probably check that it's defined before attempting to call it here:
jquery-hoverIntent/jquery.hoverIntent.js
Line 86 in 2790012
Other similar bugs may exist, e.g.
jquery-hoverIntent/jquery.hoverIntent.js
Line 74 in 2790012
from jquery-hoverintent.
Hello @adjohnson916! I'm closing this as a duplicate of #42, which was fixed in #51 and will be available in the upcoming release (or on the master branch now, if you want a preview). Please let me know if I've misunderstood the issue here.
Thanks for reporting the issue and for using the plugin!
from jquery-hoverintent.
@usmonster Thanks. I'm not sure I want out
to default to over
, I'd prefer a no-op, but it's better at least. What about when over
is undefined, but out
isn't - then what's the actual vs. expected behaviors?
from jquery-hoverintent.
@adjohnson916 An undefined out
will default to over
to remain consistent with jQuery's hover
semantics. This was a correction to match the documented behavior and will likely not change, since one is expected to pass an explicit $.noop
in your use case.
As for the behavior when there is an out
without an over
, again, according to the documentation, over
is a required parameter for hoverIntent. There may be a case for defaulting over
to $.noop
when the plugin is invoked with an object, though this kind of invocation is often a mistake that might otherwise go unnoticed. As such, the plugin does not check for nor attempt to handle this case, so the current fail-fast behavior is both expected and desired.
It's true that this is the only place where it differs in jQuery .hover
's behavior, but I believe this was a design choice considering this line in the docs:
Note, nothing prevents you from sending an empty function as the
handlerIn
orhandlerOut
functions.
Hope this answer your questions!
from jquery-hoverintent.
Related Issues (20)
- create gh-pages branch, change official site to github.io HOT 7
- make new version HOT 1
- Namespaces, unbinding and the .on() syntax HOT 7
- Add an minified version HOT 1
- Late firing on mobiles HOT 7
- Timeout only applys to mouseout method and doesn't affect mouseenter HOT 4
- Is it work with dynamically added element? HOT 3
- cdnjs issue was opened HOT 1
- remove bower.json
- 1.8.1 on NPM is a mismatch? HOT 7
- Disabled button not firing "over" (in a very specific circumstance) HOT 2
- handlerOut not triggered when domElement is removed dynamically HOT 3
- Improperly triggers mouseout when hovering a child inputs auto complete suggestion. HOT 3
- Possible bug HOT 3
- Deprecated jQuery HOT 1
- how to import like/in es6 modules? HOT 1
- ES6 version
- Typescript types needed
- Failed to open stream 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 jquery-hoverintent.