hashListeningEnabled - what exactly does it do?

hashListeningEnabled - what exactly does it do?

Please can somebody explain in more detail what $.mobile.hashListeningEnabled does when enabled/disabled in jQuery Mobile?

I have tried debugging the source, but there are some bits of code I do not fully understand. And the documentation is a bit abstract (API):

jQuery Mobile will automatically listen and handle changes to the location.hash. Disabling this will prevent jQuery Mobile from handling hash changes, which allows you to handle them yourself or use simple deep-links within a document that scroll to a particular id.

The reason I ask, is because I am having problems on iOS 9 with `<select data-native-menu="false">` elements. If this list too long, jQuery Mobile creates a full-screen dialog.

But it closes straight after displaying. I have been looking around and noticed somebody else has the same problem: http://stackoverflow.com/questions/32626073/jquery-popupopen-not-working-properly-on-ios-9-device.

One answer suggested seems to work OK for me - which is to set `hashListeningEnabled` to false:

  1. $(document).on('mobileinit', function () {
  2.     $.mobile.hashListeningEnabled = false;
  3. });

But I am not comfortable rolling this out to production until I understand what exactly it does.

`$.mobile.changePage` seems to still function.