Giter Club home page Giter Club logo

Comments (5)

roydukkey avatar roydukkey commented on June 23, 2024

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.

AndersDJohnson avatar AndersDJohnson commented on June 23, 2024

@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:

return out.apply($el[0],[ev]);

Other similar bugs may exist, e.g.

return cfg.over.apply($el[0],[ev]);

from jquery-hoverintent.

usmonster avatar usmonster commented on June 23, 2024

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.

AndersDJohnson avatar AndersDJohnson commented on June 23, 2024

@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.

usmonster avatar usmonster commented on June 23, 2024

@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 or handlerOut functions.

Hope this answer your questions!

from jquery-hoverintent.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.