Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some bug causes an annoying bug - one click of menu buttons does not work - requires multiple clicks #165

Open
MonsterMMORPG opened this issue Dec 31, 2016 · 3 comments

Comments

@MonsterMMORPG
Copy link

MonsterMMORPG commented Dec 31, 2016

Using latest codes of everything

This bug started recently. I have been using superfish over 2 years now. It is probably some mechanical change in the way browsers work

Platform : Windows 8.1 x64 : tried with latest google chrome and internet explorer and i can reproduce. I have failed to reproduce the bug with firefox

Superfish : latest 1.7.9 here the code : http://www.monstermmorpg.com/Scripts/superfish.js
Jquery : the one included in the latest version : http://www.monstermmorpg.com/Scripts/jquery-1.12.1.min.js
Hoverintent : v 1.8.0 latest : http://www.monstermmorpg.com/Scripts/hoverintent.js

How do i init?

`(function ($) { //create closure so we can safely use $ as alias for jQuery

$(document).ready(function () {

    var exampleOptions = {
        speed: 'fast'
    }

    // initialise plugin
    var example = $('#mainMenuYes').superfish(exampleOptions);

    // buttons to demonstrate Superfish's public methods
    $('.destroy').on('click', function () {
        example.superfish('destroy');
    });

    $('.init').on('click', function (exampleOptions) {
        example.superfish();
    });

    $('.open').on('click', function () {
        example.children('li:first').superfish('show');
    });

    $('.close').on('click', function () {
        example.children('li:first').superfish('hide');
    });

});

})(jQuery);`

How to test and reproduce?

Here you can try without registering : http://www.monstermmorpg.com/

1: Open the main page
2: Click forum button
3: Click maps button : does not navigate
4: Click maps button again : navigates
5: Click forum button : navigates because it is single menu button doesnt have children
6: click maps button : does not navigate
7: click maps button : this time navigates again

Here a gif example

It didnt work 2 times

In the latest one you can clearly see it does not navigate when i click the maps button

animation

@greenacorn-michael
Copy link

I'm having the same issue. If I comment out everything in touchHandler it works fine with a mouse.

@karl-dessol
Copy link

I'm having the same issue. If I comment out everything in touchHandler it works fine with a mouse.

To add to this, it appears this is happening because of the following line:
$this.one('click.superfish', false);

It looks like this line is attempting to disable the click functionality during the touch handler (i.e., during the animation itself). However for me it was also disabling the click functionality even on desktop.

@FurkanGozukara
Copy link

$this.one('click.superfish', false);

I have solved the problem with this way

can be checked on https://www.pokemonpets.com and https://www.monstermmorpg.com

		    if ($ul.length > 0 && $ul.is(':hidden')) {

			        var check = false;
			        (function (a) { if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true; })(navigator.userAgent || navigator.vendor || window.opera);


			        if (check == false) {
			            if (window.addEventListener) {
			                var once = false;
			                window.addEventListener('touchstart', function () {
			                    if (!once) {
			                        check = true;
			                        console.log('touch screen');
			                        // Do what you need for touch-screens only
			                    }
			                });
			            }
			        }

			        if (check == true)
			            $this.one('click.superfish', false);

			        if (e.type === 'MSPointerDown' || e.type === 'pointerdown') {
			            $this.trigger('focus');
			        } else {
			            console.log("li");
			            $.proxy(over, $this.parent('li'))();
			        }
			    }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants