jQuery
Par PlaceOweb le lundi, octobre 12 2009, 13:36 - Javascript - Lien permanent
Wikipédia présente jQuery qui un l'un des frameworks javascript les plus utilisés actuellement qui a été à la mode avec sa fenêtre en premier plan et grisant le fond.
Inclure jQuery et jQueryUi
<script src="library/jquery/jquery-1.12.4.min.js" type="text/javascript"></script> <link rel="stylesheet" href="library/jquery-ui-1.10.4/css/ui-lightness/jquery-ui-1.10.4.custom.css"> <script src="library/jquery-ui-1.10.4/js/jquery-ui-1.10.4.custom.min.js" type="text/javascript"></script> <script src="library/jquery-ui-1.10.4/development-bundle/ui/i18n/jquery.ui.datepicker-fr.js"></script>
Alternativement, comme l'indique Downloading jQuery, vous pouvez utiliser les (Content Delivery Network) CDN Hosted jQuery :
- jQuery CDN (Edgecast via (mt))
- http://code.jquery.com/jquery-1.8.3... Minified version
- http://code.jquery.com/jquery-1.8.3... Source version
- Google Ajax API CDN
Et si vous voulez tester les nouvelles versions pas encore stable de jQueryUi, les version "Milestone" sont téléchargeable sur http://code.google.com/p/jquery-ui/...
Migrer des anciens jQuery vers les nouvelles versions
- jQuery Core 1.9 Upgrade Guide
- jQuery.browser() removed feature detection with a library such as Modernizr.
ChangeLog : jQuery & jQuery UI ChangeLog
jQuery ChangeLog
- 2020-05-04 : jQuery 3.5.1 Released: Fixing a Regression
- 2020-04-10 : jQuery 3.5.0 Released
- ...
- 2016-05-20 : jQuery 1.12.4 and 2.2.4 Released
- 2016-04-05 : jQuery 1.12.3 and 2.2.3 Released
- 2016-02-17 : jQuery 1.12.2 and 2.2.2 Released
- 2016-02-22 : jQuery 1.12.1 and 2.2.1 Released
- 2016-01-08 : jQuery 1.12 and 2.2 Released the last releases for the 1.x and 2.x branches before we release jQuery 3.0. New Features : SVG Class Manipulation, Symbol/iterator support, jQuery.htmlPrefilter(), jQuery.uniqueSort alias
- 2015-07-13 : jQuery 3.0 and jQuery Compat 3.0 Alpha Versions Released First is jQuery 3.0, which supports modern browsers and environments from IE9 forward. Second is jQuery Compat 3.0, which includes support for IE8.
- 2015-04-28 : jQuery 1.11.3 and 2.1.4 Released – iOS Fail-Safe Edition
- 2014-12-12 : jQuery 1.11.2 and 2.1.3 Released – Safari Fail-Safe Edition
- 2014-05-01 : jQuery 1.11.1 and 2.1.1 Released
- 2014-05-01 : jQuery 1.11.1 and 2.1.1 Released
- 2014-01-24 : jQuery 1.11 and 2.1 Released What’s New? Published on Published on npm jquery and Bower owner:jquery
- 2013-07-03 : jQuery 1.10.2 and 2.0.3 Released
- 2013-05-30 : jQuery 1.10.1 and 2.0.2 released
- 2013-04-18 : jQuery 2.0 Released (doesn’t support IE 6, 7, or 8) The 1.x branch includes support for IE 6/7/8 and the 2.x branch does not.
- jQuery 1.9 API equivalence: jQuery 2.0 is API-compatible with 1.9, which means that all of the changes documented in the jQuery 1.9 Upgrade Guide have been applied to jQuery 2.0 as well. If you haven’t yet upgraded to jQuery 1.9, you may want to try that first. Be sure to use the jQuery Migrate plugin.
- 2013-02-04 : jQuery 1.9.1 Released
- 2013-01-15 : jQuery 1.9.0 Released
- 2012-11-13 : jQuery 1.8.3 Released
- 2012-09-20 : jQuery 1.8.2 Released
- 2012-08-30 : jQuery 1.8.1 Released
- 2012-08-09 : jQuery 1.8.0 Released
- jQuery 1.7.2 Released
- jQuery 1.7.1 Released
- jQuery 1.7 Released New Event APIs: .on() and .off() and jQuery.Callbacks()
- jQuery 1.6.4 Released fixes for bugs
- jQuery 1.6.3 Released Better handling of HTML5 data attribute names: The $().data() API s
- jQuery 1.6.2 Released fixes for bugs
- jQuery 1.6.1 Released .attr() -> .prop()
- jQuery 1.6 Released .data(), .prop(), .removeProp(), and .attr()
- jQuery 1.5.2
- jQuery 1.5.1 Released
- jQuery 1.5 Released
- jQuery 1.4.4
- jQuery 1.4.3
Voyez aussi :
jQuery UI Changelog
Toutes ces versions sont citées sur le jQuery UI Blog.
- jQuery UI Changelog
- jQuery UI 1.12.x
- jQuery UI 1.12.1 septembre 2016
- jQuery UI 1.12.0 mars 2016 :
- Removed: Support for jQuery 1.6.x, Removed: Support for IE7, Removed: Support for IE8, IE9, and IE10. Existing workarounds will be left in place until 1.13.0.
- Added: Checkboxradio widget, Added: Controlgroup widget
- jQuery UI 1.11.x
- jQuery UI 1.11.4 11 mars 2015
- jQuery UI 1.11.3 12 février 2015
- jQuery UI 1.11.2 16 octobre 2014
- jQuery UI 1.11.1 13 aout 2014
- jQuery UI 1.11.0 26 juin 2014 : What's New in jQuery UI 1.11 ? a new widget, selectmenu Discontinued IE7 : Support Drop support for old IE7 and Opera 12. The IE7 workarounds are still present in the code, but we will remove them for jQuery UI 1.12.
- jQuery UI 1.11 Upgrade Guide
- jQuery UI 1.10.x
- jQuery UI 1.10.4
- jQuery UI 1.10.3
- jQuery UI 1.10.2
- jQuery UI 1.10.1
- jQuery UI 1.10.0 17 janvier 2013 : Removed support for IE6 : If you need to continue to support IE6, use the latest jQuery UI 1.9 release.
- jQuery UI 1.10 Upgrade Guide
- jQuery UI 1.9.x
- jQuery UI 1.8.x
- ...
- jQuery UI 1.12.x
jQuery Code Source Hosting
Coder correctement en utilisant le guide de codage jQuery
- JQuery Core Style Guidelines
- The JavaScript Code Quality Tool : JSLint
- Coding standards
- jQuery UI API Developer Guide
jQuery UI design & planning wiki
setTimeout et jQuery
Pour qu'une une fonction puisse s'appeler soit même dans le contexte de jQuery, avec setTimeout il ne faut pas window.setTimeout("testinside()",1000); mais setTimeout(function() {testinside();},1000); Consultez JavaScript Timing Events pour plus d'informations sur :
- setInterval() - exécute une fonction, en boucle selon un intervalle de temps spécifié en millisecondes
- setTimeout() - exécute une fonction, une seule fois après avoir attendu un temps spécifié en millisecondes
function test_outside() {
console.log("test_outside");
}
//$(function() {
$(document).ready(function() {
function test_inside(){
console.log("test_inside");
window.setTimeout("test_outside()",1000);
window.setTimeout(function() {test_inside();},1000);
}
});
Limiter la saisie d'un textarea (nombre de caractères)
- Limit Number of Characters in a TextArea using jQuery (2009 + démo)
- Limit the number of characters in a textarea jQuery plugin (2009 + démo)
- Textarea maxlength with Jquery (2008)
- Interactive character limit for textarea using Jquery (2007 + démo)
Mettre le curseur dans un champs (focus onload)
$(document).ready(function() {
document.getElementById('ID_HTML_voulu').focus();
});
Et pour le mettre dans le premier champs visible du premier formulaire de votre page : Focus on first form input field or textarea onload page using jQuery
Alterner les couleurs des lignes d'un tableau
Voici un exemple qui colorie alternativement tous les lignes d'un tableau. Et qui change de couleur au survol de la souris. Les lignes paires sont sélectionnées grâce au sélecteur tr:even.
tr.alt td{
background: #ecf6fc;
}
tr.over td{
background: #bcd4ec;
}
$(function() {
// http://docs.jquery.com/Tutorials:Zebra_Striping_Made_Easy
// $( ".stripeMe tr" ).mouseover(function() {
// $(this).addClass("over");
// });
//
// $( ".stripeMe tr" ).mouseout(function() {
// $(this).removeClass("over");
// });
//
// $( ".stripeMe tr:even" ).addClass("alt");
$(".stripeMe tr").mouseover(function(){$(this).addClass("over");}).mouseout(function(){$(this).removeClass("over");});
$(".stripeMe tr:even").addClass("alt");
});
Les tailles et résolution du document, du body, du viewport (fenêtre visible)
$(document).ready(function() {
$("#resolution").html(
"<pre>" +
"Tailles (Largeur [width] x Hauteur [height]) de la fenêtre web du navigateur :\n" +
"Javascript Natif : \n" +
screen.width + "x" + screen.height + " : screen.width" + "\n" +
screen.availWidth + "x" + screen.availHeight + " : screen.availWidth" + "\n" +
window.document.width + "x" + window.document.height + " : window.document.width" + "\n" +
document.width + "x" + document.height + " : document.width" +"\n" +
document.getElementsByTagName('body')[0].clientWidth + "x" + document.getElementsByTagName('body')[0].clientHeight + " : document.getElementsByTagName('body')[0].clientWidth" + "\n" +
document.documentElement.clientWidth + "x" + document.documentElement.clientHeight + " : document.documentElement.clientWidth" + "\n" +
window.innerWidth + "x" + window.innerHeight + " : window.innerWidth" + "\n" +
"jQuery : \n" +
$('body').width() + "x" + $('body').height() + " : $('body').width()" + "\n" +
$(document).width() + "x" + $(document).height() + " : $(document).width()" + "\n" + // returns width of HTML document
$(window).width() + "x" + $(window).height() + " : $(window).width()" + "\n" + // returns width of browser viewport
"<pre>"
);
// Modification de la taille de la zone body
$('body').width(512);
$('body').width("1024px");
$('body').width("50%");
});
window.screen.height
Contient la résolution verticale réelle de l'écran.
window.screen.availHeight
Contient le nombre de pixels utiles de la résolution verticale. Les barres d'outils et de tâches sont exclues. Voir aussi availWidth. Ne pas confondre avec height qui donne la résolution réelle.
IE 6 Tailles (Largeur [width] x Hauteur [height]) de la fenêtre web du navigateur : Javascript Natif : 1400x1050 : screen.width 1400x1020 : screen.availWidth undefinedxundefined : window.document.width undefinedxundefined : document.width 1359x2584 : document.getElementsByTagName('body')0.clientWidth 1379x881 : document.documentElement.clientWidth undefinedxundefined : window.innerWidth jQuery : 1359x2584 : $('body').width() 1400x2614 : $(document).width() 1379x881 : $(window).width() Firefox 3.6 Tailles (Largeur [width] x Hauteur [height]) de la fenêtre web du navigateur : Javascript Natif : 1400x1050 : screen.width 1400x1020 : screen.availWidth 1367x2456 : window.document.width 1367x2456 : document.width 1367x2456 : document.getElementsByTagName('body')0.clientWidth 1383x808 : document.documentElement.clientWidth 1400x808 : window.innerWidth jQuery : 1367x2456 : $('body').width() 1383x2480 : $(document).width() 1383x808 : $(window).width() Chrome 8 Tailles (Largeur [width] x Hauteur [height]) de la fenêtre web du navigateur : Javascript Natif : 1400x1050 : screen.width 1400x1020 : screen.availWidth 1383x2480 : window.document.width 1383x2480 : document.width 1367x2456 : document.getElementsByTagName('body')0.clientWidth 1383x899 : document.documentElement.clientWidth 1400x899 : window.innerWidth jQuery : 1367x2456 : $('body').width() 1383x2480 : $(document).width() 1383x899 : $(window).width()
Key Listener / Bind on key : Stopper l'action de TAB (Tabulation) sur le navigateur et le traiter avec un handler
Pour les codes des touches du clavier, voyez : Table des caractères ASCII
- 9 : TAB (Tabulation horizontale)
- 13 : CR (Carriage return, retour à la ligne)
$(".quantite:last").bind('keypress', function(event) {
// alert("Key:" + event.keyCode);
if (event.keyCode == '9') {
// alert("I love TAB");
event.preventDefault();
event.stopPropagation();
event.stopImmediatePropagation();
// ajouteDivInput(); // Appel de ma méthode perso qui me va bien, par ex ; ajout d'une ligne de saisie
}
// alert($(this).text());
});
Case à cocher (checkbox)
Vérifie que la case à cocher checkbox est cochée (checked)
alert ( $("input").is(':checked') );
$(document).ready(function() {
$('#cocheTout').click(function() { // clic sur la case cocher/decocher
var cases = $("#cases").find(':checkbox'); // on cherche les checkbox qui dépendent de la liste 'cases'
if(this.checked){ // si 'cocheTout' est coché
cases.attr('checked', true); // on coche les cases
$('#cocheText').html('Tout decocher'); // mise à jour du texte de cocheText
}else{ // si on décoche 'cocheTout'
cases.attr('checked', false);// on coche les cases
$('#cocheText').html('Cocher tout');// mise à jour du texte de cocheText
}
});
});
Inverse les coches utilisées dans les cases à cocher d'une ligne d'un tableau
// $(this).children().children("input[type=checkbox]").each(function(index){
$(this).children().children(":checkbox").each(function(index){
// $("input[type=checkbox]").each(function(index){
alert("CheckBox: Text():" + $(this).text() + " Name:" + $(this).attr("name") + " Value:" + $(this).attr("value"));
if( $(this).is(':checked') ) {
alert("CheckBox : id: " + $(this).attr('id') + " name: " + $(this).attr('name') + " is checked");
}
if( !$(this).is(':disabled') ) {
$(this).attr('checked',!$(this).is(':checked'));
}
});
Lire des données de l'item sélectionné dans un select
// Sans jQuery
document.getElementById('monselect').options[document.getElementById('monselect').selectedIndex].value;
// Avec jQuery
$(document).ready(function(){
$('#monselect').change(function () {
v = $("#monselect option:selected").val();
t = $("#monselect option:selected").text();
$('#retour').html(v+" "+t);
})
.trigger('change');
})
Select, changer la valeur de l'item selectionné
Comment modifier l'état d'une des options d'un select ?
Pour modifier l'élément sélectionné dans un select, il suffit de changer l'attribut selected des éléments:
document.forms[0].monSelect.options[i].selected = true; // ou false
Dans le cas d'un select normal, si une option est passée à true, elle deviendra automatiquement l'option sélectionnée. Pour un select multiple, cette option se rajoutera aux options déjà sélectionnées.
ou avec Comment modifier les options d'un champ select ?
//permet de positionner la combo au bon champs
monSelect.selectedIndex = selected;
Avec jQuery, sélectionner un autre "select" ou "radio" suit aux valeurs retourné par le "select" d'un autocomplete
// Sélection de le même valeur du select (cat est le champ supplémentaire aux champs par défaut : id,label,value)
$("#monSelectId option").each(function(i,element) {
// alert("I am an option of #monSelectId "+i+ " " + element.value + $(this).val() + $(this).text() );
if( ui.item.cat == $(this).val() ) {
// alert("Se sont le mêmes ! " + ui.item.cat);
$(this).attr("selected","selected");
}
})
// Sélection du bon radio
if( ui.item.debit > 0 ) {
$("#debit").attr("checked","checked");
}else{
$("#credit").attr("checked","checked");
}
Rajouter un handler sur des radio avec jQuery, et déterminer la valeur de l'élément sélectionné. Par exemple avec 2 radios définis tels que :
<input type="radio" name="oui_non" value="oui" id="oui" /> <label for="oui">Oui, je le veux</label> <input type="radio" name="oui_non" value="non" id="non" /> <label for="non">Non, j'en veux une autre</label>
$("input[name=oui_non]:radio").change(
function()
{
alert("Change, nouvelle valeur : " + $(this).val());
}
);
Appel d'URL en Ajax : $.getJSON $.post $.get
Il est impossible de faire une requête POST Ajax pour obtenir un flux Json, vous devez donc passer par $.post
//$.getJSON('json.php?param1=val1¶m2=val2', $("form").serialize(), processResultJson);
$.post('json.php?param1=val1¶m2=val2', $("form").serialize(), processResultJson, 'json');
// La fonction de callback
function processResultJson(data, textStatus) {
alert("Le status est : " + textStatus + ", la donnée : " + data);
}
//
jQuery serialize div (à la place de sérialiser le formulaire "form")
Pour sérialiser un un div à la place d'un form avec jQuery, il faut spécifier pour un id donné, ses sous item avec *
$('#divId *').serialize();
jquery tableau html pagination distante sur le serveur
Commencez par lire le plan pour le plugin : GridTable de jQuery
In detail, a grid is usually used to connect a backend API that prepares a set of information in JSON or XML form to a 'live' Ajax frontend/table. Therefore, the grid has to support remote sorting, filtering and pagination. At a later state, client side sorting/filtering can be added - this is fairly difficult, since all the logic has to be implemented in the frontend.
Ce document cite les jQuery plug-ins :
- jqGrid
- SlickGrid
- ingrid
- datatables
- tablesorter
- flexgrid
- ...
Sinon, pour analyse rapide à la recherche d'un tri distant et pagination (remote paging & remote sorting), j'ai finalement opté pour jqGrid.
- Flexigrid : Flexigrid with a dynamic data, paging, search, toolbar, and connected to an JSON file.
- Remote pagination : OK
- JSON : OK
- jQuery Grid (jqGrid) : jqGrid is an Ajax-enabled JavaScript control that provides solutions for representing and manipulating tabular data on the web. Since the grid is a client-side solution loading data dynamically through Ajax callbacks, it can be integrated with any server-side technology, including PHP, ASP, Java Servlets, JSP, ColdFusion, and Perl. jqGrid uses a jQuery Java Script Library and is written as plugin for that package.
- Remote pagination : OK
- JSON : OK
- Ingrid : Ingrid is an unobtrusive jQuery component that adds datagrid behaviors (column resizing, paging, sorting, row and column styling, and more) to your tables.
- Remote pagination : OK
- JSON : ???
- DataTable : DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, based upon the foundations of progressive enhancement, which will add advanced interaction controls to any HTML table.
- Remote pagination : OK
- JSON : OK
- Slickgrid : A simple, fast and flexible grid/spreadsheet component.
- Trop orienté édition ?...
- TableSorter : Flexible client-side table sorting
- Remote pagination : NON
- JSON : ???
- Sigma Grid : Written in pure javascript, Sigma grid is an open source AJAX data grid for displaying and inline editing data in a scrollable and sortable table.
- Réaliser un tableau dynamique trié et paginé avec jQuery (utilisant tablesorter Flexible client-side table sorting)
- Une datagrid avec jQuery gérant le trie et la pagination (utilisant DataTables)
- DataTables — Pagination et tri des données pour vos tableaux HTML
- Le tri multi-colonnes avec détection automatique du type de données,
- La gestion intelligente de la largeur des colonnes,
- L’affichage des données depuis le DOM, Array Javascript, Ajax, PHP, etc.,
- L’internationalisation,
- Le support des thèmes en provenance de jQuery UI (ThemeRoller).
- allan jardine ui developer
- DataTables : Built from the ground up with progressive enhancement in mind, DataTables is a jQuery plugin which provides extensive support for interactive HTML tables. With features such as pagination, filtering, sorting and internationalisation (among many others!) this plug-in is extremely flexible.
Selon la ferme du web :
- 2008 Flexigrid: Grid / Tableaux dynamiques avec jQuery (même chose que FlexiGrid FlexiGrid for jQuery ?)
- 2009 DataTables - Affichez un tableau triable avec jQuery
- 2010 jQuery.sheet - Un plugin jQuery pour ajouter des tableurs à son site
- 2010 SlickGrid - Un plugin jQuery complet pour créer des tableaux avancés
Selon google : jquery grid (remote paging)
jqGrid : jQuery Grid Plugin
jqGrid is an Ajax-enabled JavaScript control that provides solutions for representing and manipulating tabular data on the web. Since the grid is a client-side solution loading data dynamically through Ajax callbacks, it can be integrated with any server-side technology, including PHP, ASP, Java Servlets, JSP, ColdFusion, and Perl. jqGrid uses a jQuery Java Script Library and is written as plugin for that package.
- jqGrid : jQuery Grid Plugin
- Démonstration
- Wiki
- Dépôt sur GitHub : jqGrid
Un comparatif
jQuery Grid Recommendations
The best entries in my opinion is Flexigrid and jQuery Grid (1st & 2nd in list). The others are included for completeness.
Personally I prefer jQueryGrid (because of its features), and Datatable (because of its simplicity).
Note: jQueryUI has plans for Grid plugin : http://jqueryui.pbworks.com/GridTable
The only real implementation of grid for jQuery is http://github.com/mleibman/SlickGrid/ everything else are nicely styled tables with additional options
En dehors de jQuery, on peut voir les grid :
Sigma Grid (Working With JQuery UI)
Et aussi les formatages de colonnes :
Table Fixed Header (pour formater la mise en pages des tableaux : table)
The jQuery fixheadertable plugin is a light & fast plugin for fixing the header of your <table> without fixing his width and compatible with all the browsers.
Jquery UI Dialog les fenêtres popup modales
jQuery UI Datepicker le sélecteur de date dans un calendrier
$( "#datepicker" ).datepicker( $.datepicker.regional[ "fr" ] );
Et pour rajouter l'image au calendar :
No calendar icons in UI download
This icon is now part of the jQuery UI CSS Framework. If you have a theme attached, you can use the icon with the following markup:
<span class="ui-icon ui-icon-calendar"></span>
Its color will cascade off of a parent widget class or state.
Use JQuery UI Datepicker with Icons from Jquery UI Theme
Le DatePicker permet d'utiliser des images spécifiques, par exemple :
$(document).ready(function() {
$("#datepicker").datepicker({ showOn: 'button', buttonImageOnly: true, buttonImage: 'images/ui-icon-calendar.png' });
});
Pour afficher une icône du thème vous devez faire comme cela :
<span class="ui-icon ui-icon-calendar"></span>
Loktar fait comme ceci :
$("#datepicker").datepicker({ showOn: 'both'}).next('button').text('').button({icons:{primary : 'ui-icon-calendar'}});
Pour ma part j'utilise une image externe, car je n'aime pas leur petite image non significative d'un calendrier dans ce button vide (trop petit) ou avec du texte (trop grand)
$("#datepicker").datepicker({ showOn: 'both', buttonImageOnly: true, buttonImage: '/images/calendar.gif' });
Jquery UI Autocomplete l'auto complétion de texte saisi
L'ancien plugin jQuery plugin: Autocomplete (ou http://docs.jquery.com/Plugins/Auto...) n 'est plus maintenu depuis le 2010-06-23. Son successeur est dans les librairies UI de Jquery : jQuery UI Autocomplete.
Pour les plus anciens, vous pouvez suivre le guide migration : Autocomplete Migration Guide
Désormais le widget Autocomplete fonctionne avec JSON par défaut.
L'autocomplete jQuery,
- envoi le champ : term
- attends en retour JSON avec id, label, value
.ui-autocomplete-loading { background: white url('http://jqueryui.com/demos/autocomplete/images/ui-anim_basic_16x16.gif') right center no-repeat; }
$( "#inputIdRecherche" ).autocomplete({
source: "?page=jquery.autocomplete.php",
minLength: 2,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.value + " aka " + ui.item.id :
"Nothing selected, input was " + this.value );
}
});
[ { "id": "Ardea purpurea", "label": "Purple Heron", "value": "Purple Heron" }, { "id": "Calidris maritima", "label": "Purple Sandpiper", "value": "Purple Sandpiper" }, { "id": "Calcarius lapponicus", "label": "Lapland Longspur", "value": "Lapland Longspur" }, { "id": "Fratercula arctica", "label": "Atlantic Puffin", "value": "Atlantic Puffin" } ]';
Pour formater le texte de rendu différemment suivez Autocomplete custom data formats and displays by simply overriding the default focus and select actions.
$(function() {
var projects = [
{
value: 'jquery',
label: 'jQuery',
desc: 'the write less, do more, JavaScript library',
icon: 'jquery_32x32.png'
},
{
value: 'jquery-ui',
label: 'jQuery UI',
desc: 'the official user interface library for jQuery',
icon: 'jqueryui_32x32.png'
},
{
value: 'sizzlejs',
label: 'Sizzle JS',
desc: 'a pure-JavaScript CSS selector engine',
icon: 'sizzlejs_32x32.png'
}
];
$('#project').autocomplete({
minLength: 0,
source: projects,
autoFocus: true,
focus: function(event, ui) {
$('#project').val(ui.item.label);
return false;
},
select: function(event, ui) {
$('#project').val(ui.item.label);
$('#project-id').val(ui.item.value);
$('#project-description').html(ui.item.desc);
$('#project-icon').attr('src', 'images/' + ui.item.icon);
return false;
}
})
.data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
.appendTo( ul );
};
});
Attention, depuis jQuery 1.9, "autocomplete" n'est plus valide il faut utiliser "ui-autocomplete"
Autocomplete now uses ui-autocomplete-item instead of item.autocomplete.
Theming : The autocomplete widget uses the jQuery UI CSS framework to style its look and feel. If autocomplete specific styling is needed, the following CSS class names can be used:
- ui-autocomplete: The menu used to display matches to the user.
- ui-autocomplete-input: The input element that the Autocomplete widget was instantiated with.
Somepeople think that "ui-autocomplete" is wrong, so they use "autocomplete" or "uiAutocomplete", but that is wrong. Actually, "ui-autocomplete" is the right way to do this.
$('#project').autocomplete({
// ...
})
//.data( "autocomplete" )._renderItem = function( ul, item ) {
.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.data( "ui-autocomplete-item", item )
.append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
.appendTo( ul );
};
Voir aussi :
- Autocomplete
- jQuery UI Autocomplete Widget with PHP and MySQL
- How to Use the jQuery UI Autocomplete Widget
- jQuery AJAX Autocomplete with JSON data
- Autocomplétion JQuery
Mais attention ce "con" d'auto-complète, permet par défaut moins de chose que celui qui existait avant d'être offert à la communauté jQuery UI :
pas de sélection automatique du premier élément (selectFirst / autoFill)la sélection automatique du premier élément d'un autocomplete jQuery se fait avec l'option autoFocus: true (seulement depuis jQuery UI 1.8.11 #7032, 779df65)- pas de format HTML
- ...
Autocomplete selectFirst, HTML, ...
Pour ajouter les fonctionnalités manquantes, voyez Extensible Autocomplete et son dépôt sur GitHub
Par exemple pour utiliser select first :
$( "#autocomplete" ).autocomplete({
// Les Options Non Officielles
selectFirst: true,
// Les Autres Options Officielles
source: autocomplete.php
});
$( ".ui-autocomplete-input" ).live( "autocompleteopen", function() {
var autocomplete = $( this ).data( "autocomplete" ),
menu = autocomplete.menu;
if ( !autocomplete.options.selectFirst ) {
return;
}
menu.activate( $.Event({ type: "mouseenter" }), menu.element.children().first() );
});
jQuery UI Tooltip
jQuery UI Menu, barres de menu et dropdown
Créer un plugin jQuery : une liste déroulante personnalisée
Créer une fonction utilisant jQuery
Écrire dans la console avec jQuery
- FireQuery une extension Firebug pour le développement avec jQuery
- FireQuery - La puissance de Firebug dédiée à jQuery
jQuery.fn.log = function (msg) {
console.log("%s: %o", msg, this);
return this;
};
jQuery.error = console.error;
jQuery.error("OK BOY");
Comme vous ne pouvez pas vraiment quitter la syntaxe spécifique FireFox qui génère des erreurs dans IE6, vous finirez généralement par écrire quelque chose comme ça dans votre projet :
function LogToConsole(MessageOrObject){
if (typeof(window['console']) != 'undefined'){
console.log("window['console'] is defined"); // on peut écrire dans la console
}else{
alert("window['console'] is undefined"); // on ne peut pas écrire dans la console
}
}
jQuery & jQueryUI Drag and Drop (cliquer, glisser, déposer avec jQuery)
- Le drag and drop avec HTML5 et jQuery
- Drag And Drop Everything With 30 Handy jQuery Plugins
- 17 jQuery Plugins for Easy and Efficient Reordering and Filtering Page Elements
- Dynamic Drag’n Drop With jQuery And PHP (demo)
- tuto jquery - drag ‘n drop avec sauvegarde automatique en base de données (1/2) (anciennement
- Tutoriel: Drag and Drop JQuery, exemple avec une liste des tâches
- Plugins jQuery DnD (Drag and Drop)
- drag-and-drop
- TableDnD Table row drag and drop Table Drag and Drop JQuery plugin Drag and drop table rows to reorganise data. onDragStart and onDrop config options allow you to integrate this with Ajax calls to update the server.
- jQuery UI features are: Drag & Drop, Sortables, Resizables, Selectables and many widgets that use these core components.
jQuery (UI) prendre et déposer sur une autre table (drag and drop between tables)
- Drag and Drop table rows between tables with JQuery UI (démo)
- Droppable between two tables
- Sortable - connected lists
- Multiple Drag and Drop between two lists with jQuery (démo)
- jqGrid - Drag and Drop rows between grids
- jQuery List DragSort
Sans jQuery
Ressources
- jQuery
- jQuery: The Write Less, Do More, JavaScript Library
- jQuery:Documentation
- jQuery:Plugin
- jQuery UI
- Extensions à Jquery
- jQuery Tools: The missing UI library for the Web
Doc, Tutos, astuces jQuery & autre
- siteduzero.com - jQuery Modifier la structure Création d'éléments, la manipulation de leurs attributs, les formulaires ainsi que quelques méthodes bien utiles qui permettent de boucler sur des éléments
- Tutorials:Live Examples of jQuery
- jQuery Alternative Resources
- jQuery CHM
- jQuery 1.5 Roadmap jQuery Roadmap
- jQuery UI design & planning wiki jQuery UI Roadmap
- jQuery Cheat Sheet
- jQuery Fundamentals
- jQuery documentation, manuel en francais, jQuery par jarodxxx
- Documentation du framework jQuery
- JQuery
- developpez.com - Les meilleurs cours et tutoriels JavaScript : Frameworks JavaScript
- Documentation du framework jQuery par developpeur-web2.com
- Une galerie d'images simple avec jQuery
- jQuery : l’événement !
- Apprendre et comprendre jQuery 1/3, 2/3, 3/3
- lafermeduweb : jquery
- dator.fr : jquery
- 20 Top jQuery tips & tricks for jQuery programmers
- Disable right-click contextual menu
// Désactiver le menu contextuel avec jQuery
$(document).ready(function(){
$(document).bind("contextmenu",function(e){
return false;
});
});
// Sélectionner le prochain input à partir de celui en cours avec jQuery
$(":input:eq(" + ($(":input").index(this) + 1) + ")");
- Liste de tutoriels sur les plugins jQuery
- Tutoriaux Css
- Form Elements: 40+ CSS/JS Styling and Functionality Techniques
- Masked Input Plugin- A masked input plugin for the jQuery javascript library. It allows a user to more easily enter fixed width input where you would like them to enter the data in a certain format (dates,phone numbers, etc).
- Building a better web forms: Context highlighting using jQuery
- Jquery-Autotab- Autotab is a jQuery plugin that provides auto-tabbing and filtering on text fields in a form
- Custom Select boxes with jquery
- ...
- 25+ jQuery Plugins that enhance and beautify HTML form elements
- jQuery-PHP is a PHP library that allows to tie jQuery with PHP most natural way.
- jQuery sur ajaxian
- jQuery sur eolians et sa page sur jQuery sur netvibes
jQuery et Eclipse
jQueryWTP
- jQueryWTP est un plugin eclipse qui ajoute l'auto complétion de code pour jQuery sur eclipse wtp's javascript
Étapes:
- download jqueryWTP_version.jar
- find you Eclipse Plugin org.eclipse.wst.jsdt.core_version.jar,backup the plugin.
- double click the jar file or run with command java -jar jqueryWTP.version.jar
- on the opened swing UI,choose org.eclipse.wst.jsdt.core_version.jar,and output dir.
- click generate button.
- replace old org.eclipse.wst.jsdt.core_version.jar file with the generated file.
- delete directory workspace/.metadata/.plugins/org.eclipse.wst.jsdt.core
- start eclipse.
- open a html file or a js file,edit js content.
Spket
- Spket: Setting up Eclipse IDE for Ext JS and JQuery development
- Spket: Setting up Eclipse IDE for Ext JS and JQuery development
jQuery Mobile : Touch-Optimized Web Framework for Smartphones & Tablets
jQuery plugins utiles
- Autotab (tabulation automatique lors de la saisie des champ input)
- Inactivité
- Signature manuscrite
- Tableau dynamique
Voir aussi
- tutorialzine.com : Tutoriaux et Articles jQuery
- le travail de claviska (Cory LaViska)
Commentaires
bonjour,
Un programme que je suis en train de reprendre utilise la saisie de date via DatePicker.
Je souhaiterai diminuer la largeur de la zone de saisie de la date, mais j'ignore comment faire.
Je n'ai rien trouvé dans les feuilles de style ni dans les fichiers JS.
Merci pour votre aide...