I have an issue on using JQuery versions:
Which JQuery version is suitable for all functions of jquery.
In my website designing:
I use the following js version for Contact Form validation:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js">
</script>
I use the following js version for page smooth scroll:
<script type="text/javascript" src="script/jquery-2.1.1.min.js"></script>
If I use both: The contact form is works, scrolling not works. What shall I do for this?
You just need one of your script statements as they both doing the same thing.
The difference is just if you want to load the script from your server or the google server.
Both versions are doing what you want. I would suggest to use the latest Version. If you want to support older browser (like IE8) you have to use 1.x, otherwise use 2.x
I thank to Stack Overflow Team and all of you first,
I found a solution to solve the issue.
Jquery's .noConflict();
<script type="text/javascript" src="script/jquery-2.1.1.min.js"></script>
<script>
var jq211 = jQuery.noConflict();
</script>
<script type="text/javascript" src="script/jquery-2.0.min.js"></script>
<script>
var jq20 = jQuery.noConflict();
</script>
I followed the function. Now no issues in using the versions of Jquery.
jQuery's APIs change over time, and jQuery is not 100% back compatible. I recommend trying a recent version of jQuery (2.1.x, or 1.11.x if you need to support old browsers) along with jQuery Migrate, which brings some old jQuery features back for migration purposes. If that still doesn't work, update your jQuery plugins and ensure that your third and first party code are both using compatible versions of jQuery.
If you can't fix it otherwise, you should look into using the .noConflict() method. If you do that, you can use several different versions of jQuery in one page.
Please refer to http://forum.jquery.com/topic/multiple-versions-of-jquery-on-the-same-page for more info :)
Related
I have a question for you about jQuery.noConflict.
First of all - I did some research on what
jQuery.noConflict(true)
is, my question is related to this closely. So far I have found no answer that I was able to apply to my case, so if the answer is obvious and slipped my mind I apologize in advance.
The problem:
I am currently trying to solve a problem for a very large JS application. The JS application runs on a SAMSUNG browser (based on Orsay), which in turn runs on specific SAMSUNG displays.
To use display functions it is required to include:
<!-- TODO : Common API -->
<script type="text/javascript" language="javascript" src="$MANAGER_WIDGET/Common/API/Widget.js"></script>
<script type="text/javascript" language="javascript" src="$MANAGER_WIDGET/Common/API/TVKeyValue.js"></script>
<script type='text/javascript' src='$MANAGER_WIDGET/Common/af/2.0.0/loader.js'></script>
<script type='text/javascript' src='$MANAGER_WIDGET/Common/API/Plugin.js'></script>
Also to use Deferred objects within the code jQuery 1.9.1 is included:
<script type='text/javascript' src='app/javascript/jquery-1.9.1.js' ></script>
My problem arises from the fact, that the SAMSUNG APIs apparently load whatever it is they are loading in the display's backend, however one of the things they load is their own jQuery version, which is 1.4.2.
The situation is such that I cannot say which version will be loaded at what point. I can start up the display five times having done no changes to the code and will get two times 1.4.2 and three times 1.9.1 or once 1.4.2 and four times 1.9.1 or any other possible order. I suspect this being due to the display's API able to run multithreading, so that the JS application and the API run independently from one another.
So I took a look at the noConflict method, however am unsure how to go about this problem using it.
As said, the application is large. It uses jQuery in various places. So doing something like
jQuery1_9_1 = $.noConflict(true);
after loading our jQuery version is rather unfeasible, since this will cost a large amount of time to fix.
However so far I have found no way to reliably unbind version 1.4.2 from $, because I do not load it, but the display's API does and it is not clear as to when it is loaded.
I hope this question is not redundant and someone has an idea how to go about it.
I'm trying to compare two pages and find out what went wrong https://web.archive.org/web/20141220055016/http://www.kenyabuzz.com/ and http://www.kenyabuzz.com/ on the archived version the dropdown on the top nav works. I don't know where the javascript is that onhover triggers on the ul how can I find it?
You included jQuery 1.11 and it dropped support for things used in the version of fancybox that you are using. Look to see if there is a newer version of fancybox or see if the jQuery migrate plugin will work for you.
on live version you are using new version of jquery which is breaking fancybox TypeError: f.browser is undefined because browser function is depreciated from jquery
You can fix it using jQuery Migrate plugin
Im up with a question..
I have my main file, the index.php, and inside of index im importing jquery 2.0.3.
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
The main problem is because i have other file in the server, it is called website.php, and inside i have imported jquery 1.8.3.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
So, if i take off the second librarie, the all site works correctly, but one plugin doesn't work, but if i take out the second librarie, the whole site works on but the other plugin dont!
Sorry for bad english, but the problem is because of the jquery conflict..
I already made some research, and use the jQuery.noConflict(), but still doesn't work!
Thanks in advance!
First the difference between jQuery 1 and 2 is the compatibility with older versions of Internet Explorer. So the best guess is, to use a CURRENT jQuery v1 version (1.11 at the moment).
However jQuery has changed a lot in version 1.9 which is probably the reason your old plugin fails if you remove 1.8. The only viable solution would be to update that plugin or change to another one if yours is not available anymore.
It is NEVER a good idea to use two versions of the same library in one project.
Use Jquery migrate plugin and migrate to 2.0.3 and then you can remove jquery 1.8.3.
Heres the link for migration
its very simple and easy
Problem occurs in IE6 (probably all browsers pre-dating document.getElementsByClassName).
Using jQuery 1.6 with Prototype 1.5
<script src="../js/jquery-1.6.js" language="javascript" type="text/javascript"> </script>
<script language="javascript" type="text/javascript">
// Prototype will claim the '$' namespace so give jQuery '$j' instead.
$j = jQuery.noConflict();
</script>
<script src="../js/prototype.js" language="javascript" type="text/javascript"> </script>
The problem is discussed here: http://randomous.com/forum/topic.php?id=916 (see 2nd post) and here: http://ejohn.org/blog/getelementsbyclassname-pre-prototype-16
Essentially Prototype creates document.getElementsByClassName in browsers the predate that function (it is natively supported by most browsers nowadays).
However jQuery also checks for the existence of document.getElementsByClassName, and when it finds it, it assumes it's getting the native implementation; but really it's getting Prototypes implementation which doesn't behave as jQuery expects.
I have tried A LOT of tricks to resolve this but none work. [ trying to tell jQuery document.getElementsByClassName is undefined, trying to stop prototype from claiming document.getElementsByClassName, etc. ]
The application is old (hence old prototype) and unfortunately will run mainly on IE6 & IE7 (yes, FML). I'm trying to use the latest jQuery since that's where I'm comfortable and I need to add lots of crazy UI controls to the app - combobox autocomplete dragdroppy madness.... basically I do need jQuery.
The end result here is I get errors anytime I use jQuery's class selector - $('.someClass')
Any thoughts here? I thought I was decent with javascript but this is killing me.
I had the same problem when class selector without any tag was called, e.g. $('.myClass')
resulted error while $('div.myClass') worked well. I replaced $('.myClass') with $('*.myClass') and it started working
This answer may seem a bit simple, but, update prototype to latest. They abandoned that awful decision: http://www.prototypejs.org/api/utility/getElementsByClassName
And I realize you may be supporting an app you yourself didn't build, but I'd also say that if you have the option in the future, never choose a framework that screws with the ability of other frameworks to do feature detection.
Faking native functionality should be considered harmful. I'm looking at you, prototype.
Hai,
I've got a project which uses jQuery 1.2.1, and I cannot update the version. I need to create an incremental slider bar the same as the jQuery UI example (http://jqueryui.com/demos/slider/#steps). The legacy download of jQuery UI is for 1.2.6 so even that will not cut the mustard.
Does anyone know of a way to emulate the same functionality using the older version of jQuery, or even know where I can download a version of jQuery UI which is compatible with jQuery 1.2.1 ?
Alternativly, does anyone know of any issues, such as deprecated functions, that might cause issues if I update the jQuery from 1.2.1 to 1.7.2 as this would be my ideal preference for all the obvious reasons.
Any help would be apprecaited.
Ta
No problem. Just use two jQuery versions at the same time
...
<link rel="stylesheet" href="themes/base/jquery-ui.1.7.2.css" type="text/css" />
//include 1.3.2 + UI
<script src="jquery-1.3.2.min.js"></script>
<script src="jquery-ui-1.7.2.min.js"></script>
//call noConflict. Now you can reference the new jQuery via $j instead of $
<script type="text/javascript">var $j = jQuery.noConflict(true);</script>
//include 1.2.1 which is normally available via $ and jQuery
<script src="jquery-1.2.1.js"></script>
...
Demopage: http://jsbin.com/ofuma
Why don't you try including the google-hosted jQuery:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
and just comment out your current version. Then you can see whether everything stays compatible. I would have thought that would be a lot easier than trying to work with a legacy version.