001/*
002* Copyright 2014 Cristian Rinaldi & Andres Testi.
003*
004* Licensed under the Apache License, Version 2.0 (the "License");
005* you may not use this file except in compliance with the License.
006* You may obtain a copy of the License at
007*
008*      http://www.apache.org/licenses/LICENSE-2.0
009*
010* Unless required by applicable law or agreed to in writing, software
011* distributed under the License is distributed on an "AS IS" BASIS,
012* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013* See the License for the specific language governing permissions and
014* limitations under the License.
015*/
016package gwt.material.design.jquery.client.api;
017
018/*
019 * #%L
020 * GwtMaterial
021 * %%
022 * Copyright (C) 2015 - 2017 GwtMaterialDesign
023 * %%
024 * Licensed under the Apache License, Version 2.0 (the "License");
025 * you may not use this file except in compliance with the License.
026 * You may obtain a copy of the License at
027 * 
028 *      http://www.apache.org/licenses/LICENSE-2.0
029 * 
030 * Unless required by applicable law or agreed to in writing, software
031 * distributed under the License is distributed on an "AS IS" BASIS,
032 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
033 * See the License for the specific language governing permissions and
034 * limitations under the License.
035 * #L%
036 */
037
038
039import com.google.gwt.dom.client.Element;
040import gwt.material.design.jquery.client.api.Functions.EventFunc;
041import gwt.material.design.jquery.client.api.Functions.EventFunc1;
042import gwt.material.design.jquery.client.api.Functions.EventFunc2;
043import gwt.material.design.jquery.client.api.Functions.EventFunc3;
044import gwt.material.design.jquery.client.api.Functions.Func;
045import gwt.material.design.jquery.client.api.Functions.Func1;
046import gwt.material.design.jquery.client.api.Functions.Func2;
047import gwt.material.design.jquery.client.api.Functions.Func3;
048import gwt.material.design.jquery.client.api.Functions.FuncRet1;
049import gwt.material.design.jquery.client.api.Functions.FuncRet2;
050import gwt.material.design.jquery.client.api.Functions.FuncRet3;
051import gwt.material.design.jquery.client.api.Functions.KeyEventFunc;
052import gwt.material.design.jquery.client.api.Functions.MouseEventFunc;
053import gwt.material.design.jscore.client.api.core.Node;
054import jsinterop.annotations.JsOverlay;
055import jsinterop.annotations.JsProperty;
056import jsinterop.annotations.JsType;
057
058/**
059 * Represent a JQuery Element.
060 *
061 * @author Cristian Rinaldi
062 * @author Ben Dol
063 */
064@JsType(name = "jQuery", isNative = true)
065public class JQueryElement extends Node {
066
067    /**
068     * A helper method to enable cross-casting from any {@link JQueryElement}
069     * type to any other {@link JQueryElement} type.
070     *
071     * @param <T> the target type
072     * @return this object as a different type
073     */
074    @JsOverlay
075    public final <T extends JQueryElement> T cast() {
076        return (T) this;
077    }
078
079    /**
080     * A string containing the jQuery version number.
081     */
082    @JsProperty(name="jquery")
083    public native int jquery();
084
085    /**
086     * The number of elements in the jQuery object.
087     */
088    @JsProperty(name="length")
089    public native int length();
090
091    /**
092     * Use as the raw 0 index element.
093     */
094    @JsOverlay
095    public final Element asElement() {
096        return get(0);
097    }
098
099    /**
100     * Create a new jQuery object with elements added to the set of matched elements.
101     * @param selectorOrHtml A string representing a selector expression to find
102     *                       additional elements to add to the set of matched elements.
103     * @return self {@link JQueryElement}
104     */
105    public native JQueryElement add(String selectorOrHtml);
106
107    /**
108     * Create a new jQuery object with elements added to the set of matched elements.
109     * @param element One or more elements to add to the set of matched elements.
110     * @return self {@link JQueryElement}
111     */
112    public native JQueryElement add(Element element);
113
114    /**
115     * Create a new jQuery object with elements added to the set of matched elements.
116     * @param selection An existing jQuery object to add to the set of matched elements.
117     * @return self {@link JQueryElement}
118     */
119    public native JQueryElement add(JQueryElement selection);
120
121    /**
122     * Create a new jQuery object with elements added to the set of matched elements.
123     * @param selector A string representing a selector expression to find additional
124     *                 elements to add to the set of matched elements.
125     * @param context The point in the document at which the selector should begin matching;
126     *                similar to the context argument of the $(selector, context) method.
127     * @return self {@link JQueryElement}
128     */
129    public native JQueryElement add(String selector, Element context);
130
131    /**
132     * Add the previous set of elements on the stack to the current set, optionally
133     * filtered by a selector.
134     * @param selector A string containing a selector expression to match the current
135     *                 set of elements against.
136     * @return self {@link JQueryElement}
137     */
138    public native JQueryElement addBack(String... selector);
139
140    /**
141     * Adds the specified class(es) to each element in the set of matched elements.
142     * @param className One or more space-separated classes to be added to the class
143     *                  attribute of each matched element.
144     * @return self {@link JQueryElement}
145     */
146    public native JQueryElement addClass(String className);
147
148    /**
149     * Adds the specified class(es) to each element in the set of matched elements.
150     * @param function A function returning one or more space-separated class names
151     *                 to be added to the existing class name(s). Receives the index
152     *                 position of the element in the set and the existing class name(s)
153     *                 as arguments. Within the function, this refers to the current
154     *                 element in the set.
155     * @return self {@link JQueryElement}
156     */
157    public native JQueryElement addClass(Func2<Integer, String> function);
158
159    /**
160     * Insert content, specified by the parameter, after each element in the
161     * set of matched elements.
162     * @param content HTML string to insert after each element in the set of matched elements.
163     * @return self {@link JQueryElement}
164     */
165    public native JQueryElement after(String content);
166
167    /**
168     * Insert content, specified by the parameter, after each element in the
169     * set of matched elements.
170     * @param content DOM elements to insert after each element in the set of matched elements.
171     * @return self {@link JQueryElement}
172     */
173    public native JQueryElement after(Element... content);
174
175    /**
176     * Insert content, specified by the parameter, after each element in the
177     * set of matched elements.
178     * @param content jQuery object to insert after each element in the set of matched elements.
179     * @return self {@link JQueryElement}
180     */
181    public native JQueryElement after(JQueryElement content);
182
183    /**
184     * Insert content, specified by the parameter, after each element in the
185     * set of matched elements.
186     * @param function A function that returns an HTML string, DOM element(s), or jQuery
187     *                 object to insert after each element in the set of matched elements.
188     *                 Receives the index position of the element in the set as an argument.
189     *                 Within the function, this refers to the current element in the set.
190     * @return self {@link JQueryElement}
191     */
192    public native JQueryElement after(Func1<Integer> function);
193
194    /**
195     * Insert content, specified by the parameter, after each element in the
196     * set of matched elements.
197     * @param function A function that returns an HTML string, DOM element(s), or jQuery
198     *                 object to insert after each element in the set of matched elements.
199     *                 Receives the index position of the element in the set and the old
200     *                 HTML value of the element as arguments. Within the function, this
201     *                 refers to the current element in the set.
202     * @return self {@link JQueryElement}
203     */
204    public native JQueryElement after(Func2<Integer, String> function);
205
206    /**
207     * TODO: Reserved for AJAX:
208     * https://api.jquery.com/ajaxComplete/
209     * https://api.jquery.com/ajaxError/
210     * https://api.jquery.com/ajaxSend/
211     * https://api.jquery.com/ajaxStart/
212     * https://api.jquery.com/ajaxStop/
213     * https://api.jquery.com/ajaxSuccess/
214     */
215
216    /**
217     * Add the previous set of elements on the stack to the current set.
218     * Note: This function has been deprecated and is now an alias for .addBack(), which
219     * should be used with jQuery 1.8 and later.
220     * @deprecated use {@link #addBack(String...)}
221     */
222    public native JQueryElement andSelf();
223
224    /**
225     * Perform a custom animation of a set of CSS properties.
226     * @param properties An object of CSS properties and values that the animation will move toward.
227     * @param duration A string or number determining how long the animation will run.
228     * @return self {@link JQueryElement}
229     */
230    public native JQueryElement animate(Object properties, double duration);
231
232    /**
233     * Perform a custom animation of a set of CSS properties.
234     * @param properties An object of CSS properties and values that the animation will move toward.
235     * @param duration A string or number determining how long the animation will run.
236     * @param easing A string indicating which easing function to use for the transition.
237     * @return self {@link JQueryElement}
238     */
239    public native JQueryElement animate(Object properties, double duration, String easing);
240
241    /**
242     * Perform a custom animation of a set of CSS properties.
243     * @param properties An object of CSS properties and values that the animation will move toward.
244     * @param duration A string or number determining how long the animation will run.
245     * @param easing A string indicating which easing function to use for the transition.
246     * @param function A function to call once the animation is complete, called once per matched element.
247     * @return self {@link JQueryElement}
248     */
249    public native JQueryElement animate(Object properties, double duration, String easing, Func function);
250
251    /**
252     * Perform a custom animation of a set of CSS properties.
253     * @param properties An object of CSS properties and values that the animation will move toward.
254     * @param options A map of additional options to pass to the method.
255     * @return self {@link JQueryElement}
256     */
257    public native JQueryElement animate(Object properties, AnimateOptions options);
258
259    /**
260     * Insert content, specified by the parameter, to the end of each element in the set of matched elements.
261     * @param htmlString HTML string to insert at the end of each element in the set of matched elements.
262     * @return self {@link JQueryElement}
263     */
264    public native JQueryElement append(String htmlString);
265
266    /**
267     * Insert content, specified by the parameter, to the end of each element in the set of matched elements.
268     * @param element jQuery objects to insert at the end of each element in the set of matched elements.
269     * @return self {@link JQueryElement}
270     */
271    public native JQueryElement append(JQueryElement element);
272
273    /**
274     * Insert content, specified by the parameter, to the end of each element in the set of matched elements.
275     * @param element DOM elements to insert at the end of each element in the set of matched elements.
276     * @return self {@link JQueryElement}
277     */
278    public native JQueryElement append(Element... element);
279
280    /**
281     * Insert every element in the set of matched elements to the end of the target.
282     * @param htmlString HTML string the matched set of elements will be inserted at the end of the
283     *                element(s) specified by this parameter.
284     * @return self {@link JQueryElement}
285     */
286    public native JQueryElement appendTo(String htmlString);
287
288    /**
289     * Insert every element in the set of matched elements to the end of the target.
290     * @param element jQuery objects the matched set of elements will be inserted at the end of the
291     *                element(s) specified by this parameter.
292     * @return self {@link JQueryElement}
293     */
294    public native JQueryElement appendTo(JQueryElement element);
295
296    /**
297     * Insert every element in the set of matched elements to the end of the target.
298     * @param element DOM elements the matched set of elements will be inserted at the end of the
299     *                element(s) specified by this parameter.
300     * @return self {@link JQueryElement}
301     */
302    public native JQueryElement appendTo(Element... element);
303
304    /**
305     * Insert content, specified by the parameter, to the beginning of each element in the set of matched elements.
306     * @param htmlString HTML string to insert at the end of each element in the set of matched elements.
307     * @return self {@link JQueryElement}
308     */
309    public native JQueryElement prepend(String htmlString);
310
311    /**
312     * Insert content, specified by the parameter, to the beginning of each element in the set of matched elements.
313     * @param element jQuery objects to insert at the end of each element in the set of matched elements.
314     * @return self {@link JQueryElement}
315     */
316    public native JQueryElement prepend(JQueryElement element);
317
318    /**
319     * Insert content, specified by the parameter, to the beginning of each element in the set of matched elements.
320     * @param element DOM elements to insert at the end of each element in the set of matched elements.
321     * @return self {@link JQueryElement}
322     */
323    public native JQueryElement prepend(Element... element);
324
325    /**
326     * Insert every element in the set of matched elements to the beginning of the target.
327     * @param htmlString HTML string to insert at the end of each element in the set of matched elements.
328     * @return self {@link JQueryElement}
329     */
330    public native JQueryElement prependTo(String htmlString);
331
332    /**
333     * Insert every element in the set of matched elements to the beginning of the target.
334     * @param element jQuery objects to insert at the end of each element in the set of matched elements.
335     * @return self {@link JQueryElement}
336     */
337    public native JQueryElement prependTo(JQueryElement element);
338
339    /**
340     * Insert every element in the set of matched elements to the beginning of the target.
341     * @param element DOM elements to insert at the end of each element in the set of matched elements.
342     * @return self {@link JQueryElement}
343     */
344    public native JQueryElement prependTo(Element... element);
345
346    /**
347     * Get the value of an attribute for the first element in the set of matched elements.
348     * @param attr The name of the attribute to get.
349     */
350    public native Object attr(String attr);
351
352    /**
353     * Set one or more attributes for the set of matched elements.
354     * @param attr The name of the attribute to set.
355     * @param value A value to set for the attribute.
356     * @return self {@link JQueryElement}
357     */
358    public native JQueryElement attr(String attr, Object value);
359
360    /**
361     * Set one or more attributes for the set of matched elements.
362     * @param attr The name of the attribute to set.
363     * @param function A function returning the value to set. this is the current element.
364     *                 Receives the index position of the element in the set and the old
365     *                 attribute value as arguments.
366     * @return self {@link JQueryElement}
367     */
368    public native JQueryElement attr(String attr, Func2<Integer, Object> function);
369
370    /**
371     * Insert content, specified by the parameter, before each element in the set of matched elements.
372     * @param htmlString HTML string to insert before each element in the set of matched elements.
373     * @return self {@link JQueryElement}
374     */
375    public native JQueryElement before(String htmlString);
376
377    /**
378     * Insert content, specified by the parameter, before each element in the set of matched elements.
379     * @param element jQuery object to insert before each element in the set of matched elements.
380     * @return self {@link JQueryElement}
381     */
382    public native JQueryElement before(JQueryElement element);
383
384    /**
385     * Insert content, specified by the parameter, before each element in the set of matched elements.
386     * @param element DOM elements to insert before each element in the set of matched elements.
387     * @return self {@link JQueryElement}
388     */
389    public native JQueryElement before(Element... element);
390
391    /**
392     * Attach a handler to an event for the elements.
393     * @param eventType A string containing one or more DOM event types, such as "click" or
394     *                  "submit," or custom event names.
395     * @param handler A function to execute each time the event is triggered.
396     * @return self {@link JQueryElement}
397     */
398    public native JQueryElement bind(String eventType, EventFunc handler);
399
400    /**
401     * Attach a handler to an event for the elements.
402     * @param eventType A string containing one or more DOM event types, such as "click" or
403     *                  "submit," or custom event names.
404     * @param handler A function to execute each time the event is triggered.
405     * @return self {@link JQueryElement}
406     */
407    public native JQueryElement bind(String eventType, EventFunc1 handler);
408
409    /**
410     * Attach a handler to an event for the elements.
411     * @param eventType A string containing one or more DOM event types, such as "click" or
412     *                  "submit," or custom event names.
413     * @param handler A function to execute each time the event is triggered.
414     * @return self {@link JQueryElement}
415     */
416    public native JQueryElement bind(String eventType, EventFunc2 handler);
417
418    /**
419     * Attach a handler to an event for the elements.
420     * @param eventType A string containing one or more DOM event types, such as "click" or
421     *                  "submit," or custom event names.
422     * @param eventData An object containing data that will be passed to the event handler.
423     * @param handler A function to execute each time the event is triggered.
424     * @return self {@link JQueryElement}
425     */
426    public native JQueryElement bind(String eventType, Object eventData, EventFunc handler);
427
428    /**
429     * Attach a handler to an event for the elements.
430     * @param eventType A string containing one or more DOM event types, such as "click" or
431     *                  "submit," or custom event names.
432     * @param eventData An object containing data that will be passed to the event handler.
433     * @param handler A function to execute each time the event is triggered.
434     * @return self {@link JQueryElement}
435     */
436    public native JQueryElement bind(String eventType, Object eventData, EventFunc1 handler);
437
438    /**
439     * Attach a handler to an event for the elements.
440     * @param eventType A string containing one or more DOM event types, such as "click" or
441     *                  "submit," or custom event names.
442     * @param eventData An object containing data that will be passed to the event handler.
443     * @param handler A function to execute each time the event is triggered.
444     * @return self {@link JQueryElement}
445     */
446    public native JQueryElement bind(String eventType, Object eventData, EventFunc2 handler);
447
448    /**
449     * Attach a handler to an event for the elements.
450     * @param eventType A string containing one or more DOM event types, such as "click" or
451     *                  "submit," or custom event names.
452     * @param eventData An object containing data that will be passed to the event handler.
453     * @param preventBubble Setting the third argument to false will attach a function that prevents
454     *                      the default action from occurring and stops the event from bubbling.
455     *                      The default is true.
456     * @return self {@link JQueryElement}
457     */
458    public native JQueryElement bind(String eventType, Object eventData, boolean preventBubble);
459
460    /**
461     * Attach a handler to an event for the elements.
462     * @param events An object containing one or more DOM event types and functions to execute for them.
463     * @return self {@link JQueryElement}
464     */
465    public native JQueryElement bind(Object events);
466
467    /**
468     * Bind an event handler to the "blur" JavaScript event, or trigger that event on an element.
469     * @param handler A function to execute each time the event is triggered.
470     * @return self {@link JQueryElement}
471     */
472    public native JQueryElement blur(EventFunc1 handler);
473
474    /**
475     * Bind an event handler to the "blur" JavaScript event, or trigger that event on an element.
476     * @param handler A function to execute each time the event is triggered.
477     * @return self {@link JQueryElement}
478     */
479    public native JQueryElement blur(EventFunc2 handler);
480
481    /**
482     * Bind an event handler to the "blur" JavaScript event, or trigger that event on an element.
483     * @param eventData An object containing data that will be passed to the event handler.
484     * @param handler A function to execute each time the event is triggered.
485     * @return self {@link JQueryElement}
486     */
487    public native JQueryElement blur(Object eventData, EventFunc handler);
488
489    /**
490     * Bind an event handler to the "blur" JavaScript event, or trigger that event on an element.
491     * @param eventData An object containing data that will be passed to the event handler.
492     * @param handler A function to execute each time the event is triggered.
493     * @return self {@link JQueryElement}
494     */
495    public native JQueryElement blur(Object eventData, EventFunc1 handler);
496
497    /**
498     * Bind an event handler to the "blur" JavaScript event, or trigger that event on an element.
499     * @param eventData An object containing data that will be passed to the event handler.
500     * @param handler A function to execute each time the event is triggered.
501     * @return self {@link JQueryElement}
502     */
503    public native JQueryElement blur(Object eventData, EventFunc2 handler);
504
505    /**
506     * Bind an event handler to the "blur" JavaScript event, or trigger that event on an element.
507     * @return self {@link JQueryElement}
508     */
509    public native JQueryElement blur();
510
511    /**
512     * TODO: Reserved for Callbacks:
513     * https://api.jquery.com/callbacks.add/
514     */
515
516    /**
517     * Bind an event handler to the "change" JavaScript event, or trigger that event on an element.
518     * @param handler A function to execute each time the event is triggered.
519     * @return self {@link JQueryElement}
520     */
521    public native JQueryElement change(EventFunc1 handler);
522
523    /**
524     * Bind an event handler to the "change" JavaScript event, or trigger that event on an element.
525     * @param handler A function to execute each time the event is triggered.
526     * @return self {@link JQueryElement}
527     */
528    public native JQueryElement change(EventFunc2 handler);
529
530    /**
531     * Bind an event handler to the "change" JavaScript event, or trigger that event on an element.
532     * @param eventData An object containing data that will be passed to the event handler.
533     * @param handler A function to execute each time the event is triggered.
534     * @return self {@link JQueryElement}
535     */
536    public native JQueryElement change(Object eventData, EventFunc handler);
537
538    /**
539     * Bind an event handler to the "change" JavaScript event, or trigger that event on an element.
540     * @param eventData An object containing data that will be passed to the event handler.
541     * @param handler A function to execute each time the event is triggered.
542     * @return self {@link JQueryElement}
543     */
544    public native JQueryElement change(Object eventData, EventFunc1 handler);
545
546    /**
547     * Bind an event handler to the "change" JavaScript event, or trigger that event on an element.
548     * @param eventData An object containing data that will be passed to the event handler.
549     * @param handler A function to execute each time the event is triggered.
550     * @return self {@link JQueryElement}
551     */
552    public native JQueryElement change(Object eventData, EventFunc2 handler);
553
554    /**
555     * Bind an event handler to the "change" JavaScript event, or trigger that event on an element.
556     * @return self {@link JQueryElement}
557     */
558    public native JQueryElement change();
559
560    /**
561     * Get the children of each element in the set of matched elements, optionally filtered by a selector.
562     * @param selector A string containing a selector expression to match elements against.
563     * @return self {@link JQueryElement}
564     */
565    public native JQueryElement children(String selector);
566
567    /**
568     * Remove from the queue all items that have not yet been run.
569     * @return self {@link JQueryElement}
570     */
571    public native JQueryElement clearQueue();
572
573    /**
574     * Remove from the queue all items that have not yet been run.
575     * @param queueName A string containing the name of the queue. Defaults to fx, the
576     *                  standard effects queue.
577     * @return self {@link JQueryElement}
578     */
579    public native JQueryElement clearQueue(String queueName);
580
581    /**
582     * Bind an event handler to the "click" JavaScript event, or trigger that
583     * event on an element.
584     * @param handler A function to execute each time the event is triggered.
585     * @return  self {@link JQueryElement}
586     */
587    public native JQueryElement click(MouseEventFunc handler);
588
589    /**
590     * Bind an event handler to the "click" JavaScript event, or trigger that
591     * event on an element.
592     * @return  self {@link JQueryElement}
593     */
594    public native JQueryElement click();
595
596    /**
597     * Create a deep copy of the set of matched elements.
598     * @return  self {@link JQueryElement}
599     */
600    public native JQueryElement clone();
601
602    /**
603     * Create a deep copy of the set of matched elements.
604     * @param withDataAndEvents A Boolean indicating whether event handlers should be copied along with
605     *                          the elements. As of jQuery 1.4, element data will be copied as well.
606     * @return  self {@link JQueryElement}
607     */
608    public native JQueryElement clone(boolean withDataAndEvents);
609
610    /**
611     * Create a deep copy of the set of matched elements.
612     * @param withDataAndEvents A Boolean indicating whether event handlers should be copied along with
613     *                          the elements. As of jQuery 1.4, element data will be copied as well.
614     * @param deepWithDataAndEvents A Boolean indicating whether event handlers and data for all children
615     *                              of the cloned element should be copied. By default its value matches
616     *                              the first argument's value (which defaults to false).
617     * @return self {@link JQueryElement}
618     */
619    public native JQueryElement clone(boolean withDataAndEvents, boolean deepWithDataAndEvents);
620
621    /**
622     * For each element in the set, get the first element that matches the selector by testing the
623     * element itself and traversing up through its ancestors in the DOM tree.
624     * @param selector A string containing a selector expression to match elements against.
625     * @return self {@link JQueryElement}
626     */
627    public native JQueryElement closest(String selector);
628
629    /**
630     * For each element in the set, get the first element that matches the selector by testing the
631     * element itself and traversing up through its ancestors in the DOM tree.
632     * @param selector A string containing a selector expression to match elements against.
633     * @param context A DOM element within which a matching element may be found. If no context is passed
634     *                in then the context of the jQuery set will be used instead.
635     * @return self {@link JQueryElement}
636     */
637    public native JQueryElement closest(String selector, Element context);
638
639    /**
640     * For each element in the set, get the first element that matches the selector by testing the
641     * element itself and traversing up through its ancestors in the DOM tree.
642     * @param selection A jQuery object to match elements against.
643     * @return self {@link JQueryElement}
644     */
645    public native JQueryElement closest(JQueryElement selection);
646
647    /**
648     * For each element in the set, get the first element that matches the selector by testing the
649     * element itself and traversing up through its ancestors in the DOM tree.
650     * @param element An element to match elements against.
651     * @return self {@link JQueryElement}
652     */
653    public native JQueryElement closest(Element element);
654
655    /**
656     * Get the children of each element in the set of matched elements, including text and comment nodes.
657     * @return self {@link JQueryElement}
658     */
659    public native JQueryElement contents();
660
661    /**
662     * Bind an event handler to the "contextmenu" JavaScript event, or trigger that event on an element.
663     * @param handler A function to execute each time the event is triggered.
664     * @return self {@link JQueryElement}
665     */
666    public native JQueryElement contextmenu(MouseEventFunc handler);
667
668    /**
669     * Bind an event handler to the "contextmenu" JavaScript event, or trigger that event on an element.
670     * @param eventData An object containing data that will be passed to the event handler.
671     * @param handler A function to execute each time the event is triggered.
672     * @return self {@link JQueryElement}
673     */
674    public native JQueryElement contextmenu(Object eventData, MouseEventFunc handler);
675
676    /**
677     * Bind an event handler to the "contextmenu" JavaScript event, or trigger that event on an element.
678     * @return self {@link JQueryElement}
679     */
680    public native JQueryElement contextmenu();
681
682    /**
683     * Get the computed style properties for the first element in the set of matched elements.
684     * @param propertyName A CSS property.
685     */
686    public native String css(String... propertyName);
687
688    /**
689     * Set one or more CSS properties for the set of matched elements.
690     * @param propertyName A CSS property.
691     * @param value A value to set for the property.
692     * @return self {@link JQueryElement}
693     */
694    public native JQueryElement css(String propertyName, String value);
695
696    /**
697     * Set one or more CSS properties for the set of matched elements.
698     * @param propertyName A CSS property.
699     * @param function A function returning the value to set. this is the current element. Receives
700     *                 the index position of the element in the set and the old value as arguments.
701     * @return self {@link JQueryElement}
702     */
703    public native JQueryElement css(String propertyName, FuncRet2<Integer, Object> function);
704
705    /**
706     * Set one or more CSS properties for the set of matched elements.
707     * @param properties An object of property-value pairs to set.
708     * @return self {@link JQueryElement}
709     */
710    public native JQueryElement css(Object properties);
711
712    /**
713     * Get the computed style properties for the first element in the set of matched elements.
714     * @param propertyName A CSS property.
715     * @return {@link String} property value.
716     */
717    public native String css(String propertyName);
718
719    /**
720     * Store arbitrary data associated with the matched elements.
721     * @param key A string naming the piece of data to set.
722     * @param value The new data value; this can be any Javascript type except undefined.
723     * @return self {@link JQueryElement}
724     */
725    public native JQueryElement data(String key, String value);
726
727    /**
728     * Store arbitrary data associated with the matched elements.
729     * @param obj An object of key-value pairs of data to update.
730     * @return self {@link JQueryElement}
731     */
732    public native JQueryElement data(Object obj);
733
734    /**
735     * Return the value at the named data store for the first element in the jQuery collection,
736     * as set by data(name, value) or by an HTML5 data-* attribute.
737     * @param key Name of the data stored.
738     * @return data object value.
739     */
740    public native Object data(String key);
741
742    /**
743     * Return the value at the named data store for the first element in the jQuery collection,
744     * as set by data(name, value) or by an HTML5 data-* attribute.
745     * @return data object value.
746     */
747    public native Object data();
748
749    /**
750     * Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element.
751     * @param handler A function to execute each time the event is triggered.
752     * @return self {@link JQueryElement}
753     */
754    public native JQueryElement dblclick(MouseEventFunc handler);
755
756
757    /**
758     * Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element.
759     * @param eventData An object containing data that will be passed to the event handler.
760     * @param handler A function to execute each time the event is triggered.
761     * @return self {@link JQueryElement}
762     */
763    public native JQueryElement dblclick(Object eventData, MouseEventFunc handler);
764
765    /**
766     * Set a timer to delay execution of subsequent items in the queue.
767     * @param duration An integer indicating the number of milliseconds to delay execution of the next
768     *                 item in the queue.
769     * @return self {@link JQueryElement}
770     */
771    public native JQueryElement delay(int duration);
772
773    /**
774     * Set a timer to delay execution of subsequent items in the queue.
775     * @param duration An integer indicating the number of milliseconds to delay execution of the next
776     *                 item in the queue.
777     * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue.
778     * @return self {@link JQueryElement}
779     */
780    public native JQueryElement delay(int duration, String queueName);
781
782    /**
783     * Attach a handler to one or more events for all elements that match the selector, now or in the
784     * future, based on a specific set of root elements.
785     * @param selector A selector to filter the elements that trigger the event.
786     * @param eventType A string containing one or more space-separated JavaScript event types, such as
787     *                  "click" or "keydown," or custom event names.
788     * @param handler A function to execute at the time the event is triggered.
789     * @return self {@link JQueryElement}
790     */
791    public native JQueryElement delegate(String selector, String eventType, EventFunc handler);
792
793    /**
794     * Attach a handler to one or more events for all elements that match the selector, now or in the
795     * future, based on a specific set of root elements.
796     * @param selector A selector to filter the elements that trigger the event.
797     * @param eventType A string containing one or more space-separated JavaScript event types, such as
798     *                  "click" or "keydown," or custom event names.
799     * @param handler A function to execute at the time the event is triggered.
800     * @return self {@link JQueryElement}
801     */
802    public native JQueryElement delegate(String selector, String eventType, EventFunc1 handler);
803
804    /**
805     * Attach a handler to one or more events for all elements that match the selector, now or in the
806     * future, based on a specific set of root elements.
807     * @param selector A selector to filter the elements that trigger the event.
808     * @param eventType A string containing one or more space-separated JavaScript event types, such as
809     *                  "click" or "keydown," or custom event names.
810     * @param handler A function to execute at the time the event is triggered.
811     * @return self {@link JQueryElement}
812     */
813    public native JQueryElement delegate(String selector, String eventType, EventFunc2 handler);
814
815    /**
816     * Attach a handler to one or more events for all elements that match the selector, now or in the
817     * future, based on a specific set of root elements.
818     * @param selector A selector to filter the elements that trigger the event.
819     * @param eventType A string containing one or more space-separated JavaScript event types, such as
820     *                  "click" or "keydown," or custom event names.
821     * @param eventData An object containing data that will be passed to the event handler.
822     * @param handler A function to execute at the time the event is triggered.
823     * @return self {@link JQueryElement}
824     */
825    public native JQueryElement delegate(String selector, String eventType, Object eventData, EventFunc handler);
826
827    /**
828     * Attach a handler to one or more events for all elements that match the selector, now or in the
829     * future, based on a specific set of root elements.
830     * @param selector A selector to filter the elements that trigger the event.
831     * @param eventType A string containing one or more space-separated JavaScript event types, such as
832     *                  "click" or "keydown," or custom event names.
833     * @param eventData An object containing data that will be passed to the event handler.
834     * @param handler A function to execute at the time the event is triggered.
835     * @return self {@link JQueryElement}
836     */
837    public native JQueryElement delegate(String selector, String eventType, Object eventData, EventFunc1 handler);
838
839    /**
840     * Attach a handler to one or more events for all elements that match the selector, now or in the
841     * future, based on a specific set of root elements.
842     * @param selector A selector to filter the elements that trigger the event.
843     * @param eventType A string containing one or more space-separated JavaScript event types, such as
844     *                  "click" or "keydown," or custom event names.
845     * @param eventData An object containing data that will be passed to the event handler.
846     * @param handler A function to execute at the time the event is triggered.
847     * @return self {@link JQueryElement}
848     */
849    public native JQueryElement delegate(String selector, String eventType,
850                                            Object eventData, EventFunc2 handler);
851
852    /**
853     * Attach a handler to one or more events for all elements that match the selector, now or in the
854     * future, based on a specific set of root elements.
855     * @param selector A selector to filter the elements that trigger the event.
856     * @param events A plain object of one or more event types and functions to execute for them.
857     * @return self {@link JQueryElement}
858     */
859    public native JQueryElement delegate(String selector, Object events);
860
861    /**
862     * Execute the next function on the queue for the matched elements.
863     * @return self {@link JQueryElement}
864     */
865    public native JQueryElement dequeue();
866
867    /**
868     * Execute the next function on the queue for the matched elements.
869     * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue.
870     * @return self {@link JQueryElement}
871     */
872    public native JQueryElement dequeue(String queueName);
873
874    /**
875     * Remove the set of matched elements from the DOM.
876     * @return self {@link JQueryElement}
877     */
878    public native JQueryElement detach();
879
880    /**
881     * Remove the set of matched elements from the DOM.
882     * @param selector A selector expression that filters the set of matched elements to be removed.
883     * @return self {@link JQueryElement}
884     */
885    public native JQueryElement detach(String selector);
886
887    /**
888     * Iterate over a jQuery object, executing a function for each matched element.
889     * @param function A function to execute for each matched element.
890     * @return self {@link JQueryElement}
891     */
892    public native JQueryElement each(Func2<Object, Element> function);
893
894    /**
895     * Remove all child nodes of the set of matched elements from the DOM.
896     * @return self {@link JQueryElement}
897     */
898    public native JQueryElement empty();
899
900    /**
901     * End the most recent filtering operation in the current chain and return the set of
902     * matched elements to its previous state.
903     * @return self {@link JQueryElement}
904     */
905    public native JQueryElement end();
906
907    /**
908     * Reduce the set of matched elements to the one at the specified index.
909     * @param index An integer indicating the 0-based position of the element. or,
910     *              An integer indicating the position of the element, counting backwards
911     *              from the last element in the set.
912     * @return self {@link JQueryElement}
913     */
914    public native JQueryElement eq(int index);
915
916    /**
917     * Bind an event handler to the "error" JavaScript event.
918     * @param handler A function to execute when the event is triggered.
919     * @return self {@link JQueryElement}
920     */
921    public native JQueryElement error(EventFunc1 handler);
922
923    /**
924     * Bind an event handler to the "error" JavaScript event.
925     * @param handler A function to execute when the event is triggered.
926     * @return self {@link JQueryElement}
927     */
928    public native JQueryElement error(EventFunc2 handler);
929
930    /**
931     * Bind an event handler to the "error" JavaScript event.
932     * @param eventData An object containing data that will be passed to the event handler.
933     * @param handler A function to execute when the event is triggered.
934     * @return self {@link JQueryElement}
935     */
936    public native JQueryElement error(Object eventData, EventFunc handler);
937
938    /**
939     * Bind an event handler to the "error" JavaScript event.
940     * @param eventData An object containing data that will be passed to the event handler.
941     * @param handler A function to execute when the event is triggered.
942     * @return self {@link JQueryElement}
943     */
944    public native JQueryElement error(Object eventData, EventFunc1 handler);
945
946    /**
947     * Bind an event handler to the "error" JavaScript event.
948     * @param eventData An object containing data that will be passed to the event handler.
949     * @param handler A function to execute when the event is triggered.
950     * @return self {@link JQueryElement}
951     */
952    public native JQueryElement error(Object eventData, EventFunc2 handler);
953
954    /**
955     * Display the matched elements by fading them to opaque.
956     * @return self {@link JQueryElement}
957     */
958    public native JQueryElement fadeIn();
959
960    /**
961     * Display the matched elements by fading them to opaque.
962     * @param duration A string or number determining how long the animation will run.
963     * @return self {@link JQueryElement}
964     */
965    public native JQueryElement fadeIn(double duration);
966
967    /**
968     * Display the matched elements by fading them to opaque.
969     * @param complete A function to call once the animation is complete, called once per matched element.
970     * @return self {@link JQueryElement}
971     */
972    public native JQueryElement fadeIn(Func complete);
973
974    /**
975     * Display the matched elements by fading them to opaque.
976     * @param easing A string indicating which easing function to use for the transition.
977     * @return self {@link JQueryElement}
978     */
979    public native JQueryElement fadeIn(String easing);
980
981    /**
982     * Display the matched elements by fading them to opaque.
983     * @param duration A string or number determining how long the animation will run.
984     * @param complete A function to call once the animation is complete, called once per matched element.
985     * @return self {@link JQueryElement}
986     */
987    public native JQueryElement fadeIn(double duration, Func complete);
988
989    /**
990     * Display the matched elements by fading them to opaque.
991     * @param duration A string or number determining how long the animation will run.
992     * @param easing A string indicating which easing function to use for the transition.
993     * @return self {@link JQueryElement}
994     */
995    public native JQueryElement fadeIn(double duration, String easing);
996
997    /**
998     * Display the matched elements by fading them to opaque.
999     * @param duration A string or number determining how long the animation will run.
1000     * @param easing A string indicating which easing function to use for the transition.
1001     * @param complete A function to call once the animation is complete, called once per matched element.
1002     * @return self {@link JQueryElement}
1003     */
1004    public native JQueryElement fadeIn(double duration, String easing, Func complete);
1005
1006    /**
1007     * Display the matched elements by fading them to opaque.
1008     * @param options A map of additional options to pass to the method.
1009     * @return self {@link JQueryElement}
1010     */
1011    public native JQueryElement fadeIn(AnimateOptions options);
1012
1013    /**
1014     * Hide the matched elements by fading them to transparent.
1015     * @return self {@link JQueryElement}
1016     */
1017    public native JQueryElement fadeOut();
1018
1019    /**
1020     * Hide the matched elements by fading them to transparent.
1021     * @param duration A string or number determining how long the animation will run.
1022     * @return self {@link JQueryElement}
1023     */
1024    public native JQueryElement fadeOut(double duration);
1025
1026    /**
1027     * Display the matched elements by fading them to opaque.
1028     * @param complete A function to call once the animation is complete, called once per matched element.
1029     * @return self {@link JQueryElement}
1030     */
1031    public native JQueryElement fadeOut(Func complete);
1032
1033    /**
1034     * Hide the matched elements by fading them to transparent.
1035     * @param easing A string indicating which easing function to use for the transition.
1036     * @return self {@link JQueryElement}
1037     */
1038    public native JQueryElement fadeOut(String easing);
1039
1040    /**
1041     * Hide the matched elements by fading them to transparent.
1042     * @param duration A string or number determining how long the animation will run.
1043     * @param complete A function to call once the animation is complete, called once per matched element.
1044     * @return self {@link JQueryElement}
1045     */
1046    public native JQueryElement fadeOut(double duration, Func complete);
1047
1048    /**
1049     * Hide the matched elements by fading them to transparent.
1050     * @param duration A string or number determining how long the animation will run.
1051     * @param easing A string indicating which easing function to use for the transition.
1052     * @return self {@link JQueryElement}
1053     */
1054    public native JQueryElement fadeOut(double duration, String easing);
1055
1056    /**
1057     * Hide the matched elements by fading them to transparent.
1058     * @param duration A string or number determining how long the animation will run.
1059     * @param easing A string indicating which easing function to use for the transition.
1060     * @param complete A function to call once the animation is complete, called once per matched element.
1061     * @return self {@link JQueryElement}
1062     */
1063    public native JQueryElement fadeOut(double duration, String easing, Func complete);
1064
1065    /**
1066     * Hide the matched elements by fading them to transparent.
1067     * @param options A map of additional options to pass to the method.
1068     * @return self {@link JQueryElement}
1069     */
1070    public native JQueryElement fadeOut(AnimateOptions options);
1071
1072    /**
1073     * Adjust the opacity of the matched elements.
1074     * @param duration A string or number determining how long the animation will run.
1075     * @param opacity A number between 0 and 1 denoting the target opacity.
1076     * @return self {@link JQueryElement}
1077     */
1078    public native JQueryElement fadeTo(double duration, double opacity);
1079
1080    /**
1081     * Adjust the opacity of the matched elements.
1082     * @param duration A string or number determining how long the animation will run.
1083     * @param opacity A number between 0 and 1 denoting the target opacity.
1084     * @param complete A function to call once the animation is complete.
1085     * @return self {@link JQueryElement}
1086     */
1087    public native JQueryElement fadeTo(double duration, double opacity, Func complete);
1088
1089    /**
1090     * Adjust the opacity of the matched elements.
1091     * @param duration A string or number determining how long the animation will run.
1092     * @param opacity A number between 0 and 1 denoting the target opacity.
1093     * @param easing A string indicating which easing function to use for the transition.
1094     * @return self {@link JQueryElement}
1095     */
1096    public native JQueryElement fadeTo(double duration, double opacity, String easing);
1097
1098    /**
1099     * Adjust the opacity of the matched elements.
1100     * @param duration A string or number determining how long the animation will run.
1101     * @param opacity A number between 0 and 1 denoting the target opacity.
1102     * @param easing A string indicating which easing function to use for the transition.
1103     * @param complete A function to call once the animation is complete.
1104     * @return self {@link JQueryElement}
1105     */
1106    public native JQueryElement fadeTo(double duration, double opacity, String easing, Func complete);
1107
1108    /**
1109     * Display or hide the matched elements by animating their opacity.
1110     * @param duration A string or number determining how long the animation will run.
1111     * @return self {@link JQueryElement}
1112     */
1113    public native JQueryElement fadeToggle(double duration);
1114
1115    /**
1116     * Display or hide the matched elements by animating their opacity.
1117     * @param complete A function to call once the animation is complete, called once per matched element.
1118     * @return self {@link JQueryElement}
1119     */
1120    public native JQueryElement fadeToggle(Func complete);
1121
1122    /**
1123     * Display or hide the matched elements by animating their opacity.
1124     * @param easing A string indicating which easing function to use for the transition.
1125     * @return self {@link JQueryElement}
1126     */
1127    public native JQueryElement fadeToggle(String easing);
1128
1129    /**
1130     * Display or hide the matched elements by animating their opacity.
1131     * @param duration A string or number determining how long the animation will run.
1132     * @param complete A function to call once the animation is complete, called once per matched element.
1133     * @return self {@link JQueryElement}
1134     */
1135    public native JQueryElement fadeToggle(double duration, Func complete);
1136
1137    /**
1138     * Display or hide the matched elements by animating their opacity.
1139     * @param duration A string or number determining how long the animation will run.
1140     * @param easing A string indicating which easing function to use for the transition.
1141     * @return self {@link JQueryElement}
1142     */
1143    public native JQueryElement fadeToggle(double duration, String easing);
1144
1145    /**
1146     * Display or hide the matched elements by animating their opacity.
1147     * @param duration A string or number determining how long the animation will run.
1148     * @param easing A string indicating which easing function to use for the transition.
1149     * @param complete A function to call once the animation is complete, called once per matched element.
1150     * @return self {@link JQueryElement}
1151     */
1152    public native JQueryElement fadeToggle(double duration, String easing, Func complete);
1153
1154    /**
1155     * Display or hide the matched elements by animating their opacity.
1156     * @param options A map of additional options to pass to the method.
1157     * @return self {@link JQueryElement}
1158     */
1159    public native JQueryElement fadeToggle(AnimateOptions options);
1160
1161    /**
1162     * Reduce the set of matched elements to those that match the selector or pass the function's test.
1163     * @param selector A string containing a selector expression to match the current set of elements against.
1164     * @return self {@link JQueryElement}
1165     */
1166    public native JQueryElement filter(String selector);
1167
1168    /**
1169     * Reduce the set of matched elements to those that match the selector or pass the function's test.
1170     * @param function A function used as a test for each element in the set. this is the current DOM element.
1171     * @return self {@link JQueryElement}
1172     */
1173    public native JQueryElement filter(FuncRet2<Integer, Element> function);
1174
1175    /**
1176     * Reduce the set of matched elements to those that match the selector or pass the function's test.
1177     * @param elements One or more DOM elements to match the current set of elements against.
1178     * @return self {@link JQueryElement}
1179     */
1180    public native JQueryElement filter(Element... elements);
1181
1182    /**
1183     * Reduce the set of matched elements to those that match the selector or pass the function's test.
1184     * @param selection An existing jQuery object to match the current set of elements against.
1185     * @return self {@link JQueryElement}
1186     */
1187    public native JQueryElement filter(JQueryElement selection);
1188
1189    /**
1190     * Get the descendants of each element in the current set of matched elements, filtered
1191     * by a selector, jQuery object, or element.
1192     * @param selector A string containing a selector expression to match elements against.
1193     * @return self {@link JQueryElement}
1194     */
1195    public native JQueryElement find(String selector);
1196
1197    /**
1198     * Get the descendants of each element in the current set of matched elements, filtered
1199     * by a selector, jQuery object, or element.
1200     * @param elements DOM elements to match elements against.
1201     * @return self {@link JQueryElement}
1202     */
1203    public native JQueryElement find(Element... elements);
1204
1205    /**
1206     * Get the descendants of each element in the current set of matched elements, filtered
1207     * by a selector, jQuery object, or element.
1208     * @param selection jQuery object to match elements against.
1209     * @return self {@link JQueryElement}
1210     */
1211    public native JQueryElement find(JQueryElement selection);
1212
1213    /**
1214     * Stop the currently-running animation, remove all queued animations, and complete
1215     * all animations for the matched elements.
1216     * @return self {@link JQueryElement}
1217     */
1218    public native JQueryElement finish();
1219
1220    /**
1221     * Stop the currently-running animation, remove all queued animations, and complete
1222     * all animations for the matched elements.
1223     * @param queue The name of the queue in which to stop animations.
1224     * @return self {@link JQueryElement}
1225     */
1226    public native JQueryElement finish(String queue);
1227
1228    /**
1229     * Reduce the set of matched elements to the first in the set.
1230     * @return self {@link JQueryElement}
1231     */
1232    public native JQueryElement first();
1233
1234    /**
1235     * Bind an event handler to the "focus" JavaScript event, or trigger that event on an element.
1236     * @param handler A function to execute each time the event is triggered.
1237     * @return self {@link JQueryElement}
1238     */
1239    public native JQueryElement focus(EventFunc1 handler);
1240
1241    /**
1242     * Bind an event handler to the "focus" JavaScript event, or trigger that event on an element.
1243     * @param handler A function to execute each time the event is triggered.
1244     * @return self {@link JQueryElement}
1245     */
1246    public native JQueryElement focus(EventFunc2 handler);
1247
1248    /**
1249     * Bind an event handler to the "focus" JavaScript event, or trigger that event on an element.
1250     * @param eventData An object containing data that will be passed to the event handler.
1251     * @param handler A function to execute each time the event is triggered.
1252     * @return self {@link JQueryElement}
1253     */
1254    public native JQueryElement focus(Object eventData, EventFunc handler);
1255
1256    /**
1257     * Bind an event handler to the "focus" JavaScript event, or trigger that event on an element.
1258     * @param eventData An object containing data that will be passed to the event handler.
1259     * @param handler A function to execute each time the event is triggered.
1260     * @return self {@link JQueryElement}
1261     */
1262    public native JQueryElement focus(Object eventData, EventFunc1 handler);
1263
1264    /**
1265     * Bind an event handler to the "focus" JavaScript event, or trigger that event on an element.
1266     * @param eventData An object containing data that will be passed to the event handler.
1267     * @param handler A function to execute each time the event is triggered.
1268     * @return self {@link JQueryElement}
1269     */
1270    public native JQueryElement focus(Object eventData, EventFunc2 handler);
1271
1272    /**
1273     * Bind an event handler to the "focus" JavaScript event, or trigger that event on an element.
1274     * @return self {@link JQueryElement}
1275     */
1276    public native JQueryElement focus();
1277
1278    /**
1279     * Bind an event handler to the "focusin" JavaScript event.
1280     * @param handler A function to execute each time the event is triggered.
1281     * @return self {@link JQueryElement}
1282     */
1283    public native JQueryElement focusin(EventFunc1 handler);
1284
1285    /**
1286     * Bind an event handler to the "focusin" JavaScript event.
1287     * @param handler A function to execute each time the event is triggered.
1288     * @return self {@link JQueryElement}
1289     */
1290    public native JQueryElement focusin(EventFunc2 handler);
1291
1292    /**
1293     * Bind an event handler to the "focusin" JavaScript event.
1294     * @param eventData An object containing data that will be passed to the event handler.
1295     * @param handler A function to execute each time the event is triggered.
1296     * @return self {@link JQueryElement}
1297     */
1298    public native JQueryElement focusin(Object eventData, EventFunc handler);
1299
1300    /**
1301     * Bind an event handler to the "focusin" JavaScript event.
1302     * @param eventData An object containing data that will be passed to the event handler.
1303     * @param handler A function to execute each time the event is triggered.
1304     * @return self {@link JQueryElement}
1305     */
1306    public native JQueryElement focusin(Object eventData, EventFunc1 handler);
1307
1308    /**
1309     * Bind an event handler to the "focusin" JavaScript event.
1310     * @param eventData An object containing data that will be passed to the event handler.
1311     * @param handler A function to execute each time the event is triggered.
1312     * @return self {@link JQueryElement}
1313     */
1314    public native JQueryElement focusin(Object eventData, EventFunc2 handler);
1315
1316    /**
1317     * Bind an event handler to the "focusin" JavaScript event.
1318     * @return self {@link JQueryElement}
1319     */
1320    public native JQueryElement focusin();
1321
1322    /**
1323     * Bind an event handler to the "focusout" JavaScript event.
1324     * @param handler A function to execute each time the event is triggered.
1325     * @return self {@link JQueryElement}
1326     */
1327    public native JQueryElement focusout(EventFunc1 handler);
1328
1329    /**
1330     * Bind an event handler to the "focusout" JavaScript event.
1331     * @param handler A function to execute each time the event is triggered.
1332     * @return self {@link JQueryElement}
1333     */
1334    public native JQueryElement focusout(EventFunc2 handler);
1335
1336    /**
1337     * Bind an event handler to the "focusout" JavaScript event.
1338     * @param eventData An object containing data that will be passed to the event handler.
1339     * @param handler A function to execute each time the event is triggered.
1340     * @return self {@link JQueryElement}
1341     */
1342    public native JQueryElement focusout(Object eventData, EventFunc handler);
1343
1344    /**
1345     * Bind an event handler to the "focusout" JavaScript event.
1346     * @param eventData An object containing data that will be passed to the event handler.
1347     * @param handler A function to execute each time the event is triggered.
1348     * @return self {@link JQueryElement}
1349     */
1350    public native JQueryElement focusout(Object eventData, EventFunc1 handler);
1351
1352    /**
1353     * Bind an event handler to the "focusout" JavaScript event.
1354     * @param eventData An object containing data that will be passed to the event handler.
1355     * @param handler A function to execute each time the event is triggered.
1356     * @return self {@link JQueryElement}
1357     */
1358    public native JQueryElement focusout(Object eventData, EventFunc2 handler);
1359
1360    /**
1361     * Bind an event handler to the "focusout" JavaScript event.
1362     * @return self {@link JQueryElement}
1363     */
1364    public native JQueryElement focusout();
1365
1366    /**
1367     * Retrieve one of the elements matched by the jQuery object.
1368     * @param index A zero-based integer indicating which element to retrieve.
1369     * @return Retrieved element
1370     */
1371    public native Element get(int index);
1372
1373    /**
1374     * Retrieve the elements matched by the jQuery object.
1375     * @return All of the matched DOM nodes are returned by this call, contained
1376     * in a standard array:
1377     */
1378    public native Element[] get();
1379
1380    /**
1381     * Reduce the set of matched elements to those that have a descendant that matches
1382     * the selector or DOM element.
1383     * @param selector A string containing a selector expression to match elements against.
1384     * @return self {@link JQueryElement}
1385     */
1386    public native JQueryElement has(String selector);
1387
1388    /**
1389     * Reduce the set of matched elements to those that have a descendant that matches
1390     * the selector or DOM element.
1391     * @param contained A DOM element to match elements against.
1392     * @return self {@link JQueryElement}
1393     */
1394    public native JQueryElement has(Element contained);
1395
1396    /**
1397     * Determine whether any of the matched elements are assigned the given class.
1398     * @param className The class name to search for.
1399     * @return true if the class exists
1400     */
1401    public native boolean hasClass(String className);
1402
1403    /**
1404     * Get the current computed height for the first element in the set of matched elements.
1405     */
1406    public native double height();
1407
1408    /**
1409     * Set the CSS height of every matched element.
1410     * @param height An integer representing the number of pixels.
1411     * @return self {@link JQueryElement}
1412     */
1413    public native double height(int height);
1414
1415    /**
1416     * Set the CSS height of every matched element.
1417     * @param height An integer with an optional unit of measure appended (as a string).
1418     * @return self {@link JQueryElement}
1419     */
1420    public native JQueryElement height(String height);
1421
1422    /**
1423     * Set the CSS height of every matched element.
1424     * @param function A function returning the height to set. Receives the index position of the
1425     *                 element in the set and the old height as arguments. Within the function,
1426     *                 this refers to the current element in the set. You can return String or Number.
1427     * @return self {@link JQueryElement}
1428     */
1429    public native JQueryElement height(FuncRet2<Integer, Integer> function);
1430
1431    /**
1432     * Hide the matched elements.
1433     * @return self {@link JQueryElement}
1434     */
1435    public native JQueryElement hide();
1436
1437    /**
1438     * Hide the matched elements.
1439     * @param duration A string or number determining how long the animation will run.
1440     * @return self {@link JQueryElement}
1441     */
1442    public native JQueryElement hide(double duration);
1443
1444    /**
1445     * Hide the matched elements.
1446     * @param complete A function to call once the animation is complete, called once per
1447     *                 matched element.
1448     * @return self {@link JQueryElement}
1449     */
1450    public native JQueryElement hide(Func complete);
1451
1452    /**
1453     * Hide the matched elements.
1454     * @param duration A string or number determining how long the animation will run.
1455     * @param complete A function to call once the animation is complete, called once per
1456     *                 matched element.
1457     * @return self {@link JQueryElement}
1458     */
1459    public native JQueryElement hide(double duration, Func complete);
1460
1461    /**
1462     * Hide the matched elements.
1463     * @param options A map of additional options to pass to the method.
1464     * @return self {@link JQueryElement}
1465     */
1466    public native JQueryElement hide(AnimateOptions options);
1467
1468    /**
1469     * Bind two handlers to the matched elements, to be executed when the mouse pointer
1470     * enters and leaves the elements.
1471     * @param handlerIn A function to execute when the mouse pointer enters the element.
1472     * @param handlerOut A function to execute when the mouse pointer leaves the element.
1473     * @return self {@link JQueryElement}
1474     */
1475    public native JQueryElement hover(EventFunc1 handlerIn, EventFunc handlerOut);
1476
1477    /**
1478     * Bind two handlers to the matched elements, to be executed when the mouse pointer
1479     * enters and leaves the elements.
1480     * @param handlerIn A function to execute when the mouse pointer enters the element.
1481     * @param handlerOut A function to execute when the mouse pointer leaves the element.
1482     * @return self {@link JQueryElement}
1483     */
1484    public native JQueryElement hover(EventFunc1 handlerIn, EventFunc1 handlerOut);
1485
1486    /**
1487     * Bind two handlers to the matched elements, to be executed when the mouse pointer
1488     * enters and leaves the elements.
1489     * @param handlerIn A function to execute when the mouse pointer enters the element.
1490     * @param handlerOut A function to execute when the mouse pointer leaves the element.
1491     * @return self {@link JQueryElement}
1492     */
1493    public native JQueryElement hover(EventFunc2 handlerIn, EventFunc2 handlerOut);
1494
1495    /**
1496     * Bind two handlers to the matched elements, to be executed when the mouse pointer
1497     * enters and leaves the elements.
1498     * @param handlerOut A function to execute when the mouse pointer leaves the element.
1499     * @return self {@link JQueryElement}
1500     */
1501    public native JQueryElement hover(EventFunc1 handlerOut);
1502
1503    /**
1504     * Bind two handlers to the matched elements, to be executed when the mouse pointer
1505     * enters and leaves the elements.
1506     * @param handlerOut A function to execute when the mouse pointer leaves the element.
1507     * @return self {@link JQueryElement}
1508     */
1509    public native JQueryElement hover(EventFunc2 handlerOut);
1510
1511    /**
1512     * Get the HTML contents of the first element in the set of matched elements.
1513     */
1514    public native String html();
1515
1516    /**
1517     * Set the HTML contents of each element in the set of matched elements.
1518     * @param htmlString A string of HTML to set as the content of each matched element.
1519     * @return self {@link JQueryElement}
1520     */
1521    public native JQueryElement html(String htmlString);
1522
1523    /**
1524     * Set the HTML contents of each element in the set of matched elements.
1525     * @param function A function returning the HTML content to set. Receives the index position
1526     *                 of the element in the set and the old HTML value as arguments. jQuery
1527     *                 empties the element before calling the function; use the oldhtml argument
1528     *                 to reference the previous content. Within the function, this refers to the
1529     *                 current element in the set.
1530     * @return self {@link JQueryElement}
1531     */
1532    public native JQueryElement html(FuncRet2<Integer, String> function);
1533
1534    /**
1535     * Search for a given element from among the matched elements.
1536     */
1537    public native int index();
1538
1539    /**
1540     * Search for a given element from among the matched elements.
1541     * @param selector A selector representing a jQuery collection in which to look for an element.
1542     */
1543    public native int index(String selector);
1544
1545    /**
1546     * Search for a given element from among the matched elements.
1547     * @param element The DOM element within the jQuery object to look for.
1548     */
1549    public native int index(Element element);
1550
1551    /**
1552     * Search for a given element from among the matched elements.
1553     * @param element First element within the jQuery object to look for.
1554     */
1555    public native int index(JQueryElement element);
1556
1557    /**
1558     * Get the current computed height for the first element in the set of matched elements,
1559     * including padding but not border.
1560     */
1561    public native double innerHeight();
1562
1563    /**
1564     * Set the CSS inner height of each element in the set of matched elements.
1565     * @param value A number along with an optional unit of measure appended (as a string).
1566     * @return self {@link JQueryElement}
1567     */
1568    public native JQueryElement innerHeight(String value);
1569
1570    /**
1571     * Set the CSS inner height of each element in the set of matched elements.
1572     * @param value A number representing the number of pixels.
1573     * @return self {@link JQueryElement}
1574     */
1575    public native JQueryElement innerHeight(double value);
1576
1577    /**
1578     * Set the CSS inner height of each element in the set of matched elements.
1579     * @param function A function returning the inner height (including padding but not border)
1580     *                 to set. Receives the index position of the element in the set and the old
1581     *                 inner height as arguments. Within the function, this refers to the current
1582     *                 element in the set. Return String or Number.
1583     * @return self {@link JQueryElement}
1584     */
1585    public native JQueryElement innerHeight(FuncRet2<Integer, Double> function);
1586
1587    /**
1588     * Get the current computed width for the first element in the set of matched elements,
1589     * including padding but not border.
1590     */
1591    public native double innerWidth();
1592
1593    /**
1594     * Set the CSS inner width of each element in the set of matched elements.
1595     * @param value A number along with an optional unit of measure appended (as a string).
1596     * @return self {@link JQueryElement}
1597     */
1598    public native JQueryElement innerWidth(String value);
1599
1600    /**
1601     * Set the CSS inner width of each element in the set of matched elements.
1602     * @param value A number representing the number of pixels.
1603     * @return self {@link JQueryElement}
1604     */
1605    public native JQueryElement innerWidth(double value);
1606
1607    /**
1608     * Set the CSS inner width of each element in the set of matched elements.
1609     * @param function A function returning the inner height (including padding but not border)
1610     *                 to set. Receives the index position of the element in the set and the old
1611     *                 inner height as arguments. Within the function, this refers to the current
1612     *                 element in the set. Return String or Number.
1613     * @return self {@link JQueryElement}
1614     */
1615    public native JQueryElement innerWidth(FuncRet2<Integer, Double> function);
1616
1617    /**
1618     * Insert every element in the set of matched elements after the target.
1619     * @param selector A selector or HTML string; matched set of elements will be inserted after the
1620     *                 element(s) specified by this parameter.
1621     * @return self {@link JQueryElement}
1622     */
1623    public native JQueryElement insertAfter(String selector);
1624
1625    /**
1626     * Insert every element in the set of matched elements after the target.
1627     * @param element An element; matched set of elements will be inserted after the
1628     *                 element(s) specified by this parameter.
1629     * @return self {@link JQueryElement}
1630     */
1631    public native JQueryElement insertAfter(Element... element);
1632
1633    /**
1634     * Insert every element in the set of matched elements after the target.
1635     * @param element jQuery object; matched set of elements will be inserted after the
1636     *                 element(s) specified by this parameter.
1637     * @return self {@link JQueryElement}
1638     */
1639    public native JQueryElement insertAfter(JQueryElement element);
1640
1641    /**
1642     * Insert every element in the set of matched elements before the target.
1643     * @param element jQuery object; matched set of elements will be inserted after the
1644     *                 element(s) specified by this parameter.
1645     * @return self {@link JQueryElement}
1646     */
1647    public native JQueryElement insertBefore(JQueryElement element);
1648
1649    /**
1650     * Check the current matched set of elements against a selector, element, or jQuery object
1651     * and return true if at least one of these elements matches the given arguments.
1652     * @param selector A string containing a selector expression to match elements against.
1653     * @return return true if at least one of these elements matches the given arguments
1654     */
1655    public native boolean is(String selector);
1656
1657    /**
1658     * Check the current matched set of elements against a selector, element, or jQuery object
1659     * and return true if at least one of these elements matches the given arguments.
1660     * @param function A function used as a test for every element in the set. It accepts two
1661     *                 arguments, index, which is the element's index in the jQuery collection,
1662     *                 and element, which is the DOM element. Within the function, this refers
1663     *                 to the current DOM element. Return a Boolean value.
1664     * @return return true if at least one of these elements matches the given arguments
1665     */
1666    public native boolean is(FuncRet2<Integer, Element> function);
1667
1668    /**
1669     * Check the current matched set of elements against a selector, element, or jQuery object
1670     * and return true if at least one of these elements matches the given arguments.
1671     * @param selection An existing jQuery object to match the current set of elements against.
1672     * @return return true if at least one of these elements matches the given arguments
1673     */
1674    public native boolean is(JQueryElement selection);
1675
1676    /**
1677     * Check the current matched set of elements against a selector, element, or jQuery object
1678     * and return true if at least one of these elements matches the given arguments.
1679     * @param elements One or more elements to match the current set of elements against.
1680     * @return return true if at least one of these elements matches the given arguments
1681     */
1682    public native boolean is(Element... elements);
1683
1684    /**
1685     * Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element.
1686     * @param handler A function to execute each time the event is triggered.
1687     * @return self {@link JQueryElement}
1688     */
1689    public native JQueryElement keydown(KeyEventFunc handler);
1690
1691    /**
1692     * Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element.
1693     * @param eventData An object containing data that will be passed to the event handler.
1694     * @param handler A function to execute each time the event is triggered.
1695     * @return self {@link JQueryElement}
1696     */
1697    public native JQueryElement keydown(Object eventData, KeyEventFunc handler);
1698
1699    /**
1700     * Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element.
1701     * @return self {@link JQueryElement}
1702     */
1703    public native JQueryElement keydown();
1704
1705    /**
1706     * Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element.
1707     * @param handler A function to execute each time the event is triggered.
1708     * @return self {@link JQueryElement}
1709     */
1710    public native JQueryElement keypress(KeyEventFunc handler);
1711
1712    /**
1713     * Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element.
1714     * @param eventData An object containing data that will be passed to the event handler.
1715     * @param handler A function to execute each time the event is triggered.
1716     * @return self {@link JQueryElement}
1717     */
1718    public native JQueryElement keypress(Object eventData, KeyEventFunc handler);
1719
1720    /**
1721     * Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element.
1722     * @return self {@link JQueryElement}
1723     */
1724    public native JQueryElement keypress();
1725
1726    /**
1727     * Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element.
1728     * @param handler A function to execute each time the event is triggered.
1729     * @return self {@link JQueryElement}
1730     */
1731    public native JQueryElement keyup(KeyEventFunc handler);
1732
1733    /**
1734     * Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element.
1735     * @param eventData An object containing data that will be passed to the event handler.
1736     * @param handler A function to execute each time the event is triggered.
1737     * @return self {@link JQueryElement}
1738     */
1739    public native JQueryElement keyup(Object eventData, KeyEventFunc handler);
1740
1741    /**
1742     * Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element.
1743     * @return self {@link JQueryElement}
1744     */
1745    public native JQueryElement keyup();
1746
1747    /**
1748     * Reduce the set of matched elements to the final one in the set.
1749     * @return self {@link JQueryElement}
1750     */
1751    public native JQueryElement last();
1752
1753    /**
1754     * Load data from the server and place the returned HTML into the matched element.
1755     * @param url A string containing the URL to which the request is sent.
1756     * @return self {@link JQueryElement}
1757     */
1758    public native JQueryElement load(String url);
1759
1760    /**
1761     * Load data from the server and place the returned HTML into the matched element.
1762     * @param url A string containing the URL to which the request is sent.
1763     * @param data A plain object or string that is sent to the server with the request.
1764     * @return self {@link JQueryElement}
1765     */
1766    public native JQueryElement load(String url, String data);
1767
1768    /**
1769     * Load data from the server and place the returned HTML into the matched element.
1770     * @param url A string containing the URL to which the request is sent.
1771     * @param data A plain object or string that is sent to the server with the request.
1772     * @param complete A callback function that is executed when the request completes.
1773     * @return self {@link JQueryElement}
1774     */
1775    public native JQueryElement load(String url, String data, Func3<String, String, Object> complete);
1776
1777    /**
1778     * Bind an event handler to the "load" JavaScript event.
1779     * @param handler A function to execute when the event is triggered.
1780     * @return self {@link JQueryElement}
1781     */
1782    public native JQueryElement load(EventFunc1 handler);
1783
1784    /**
1785     * Bind an event handler to the "load" JavaScript event.
1786     * @param handler A function to execute when the event is triggered.
1787     * @return self {@link JQueryElement}
1788     */
1789    public native JQueryElement load(EventFunc2 handler);
1790
1791    /**
1792     * Bind an event handler to the "load" JavaScript event.
1793     * @param eventData An object containing data that will be passed to the event handler.
1794     * @param handler A function to execute when the event is triggered.
1795     * @return self {@link JQueryElement}
1796     */
1797    public native JQueryElement load(Object eventData, EventFunc handler);
1798
1799    /**
1800     * Bind an event handler to the "load" JavaScript event.
1801     * @param eventData An object containing data that will be passed to the event handler.
1802     * @param handler A function to execute when the event is triggered.
1803     * @return self {@link JQueryElement}
1804     */
1805    public native JQueryElement load(Object eventData, EventFunc1 handler);
1806
1807    /**
1808     * Bind an event handler to the "load" JavaScript event.
1809     * @param eventData An object containing data that will be passed to the event handler.
1810     * @param handler A function to execute when the event is triggered.
1811     * @return self {@link JQueryElement}
1812     */
1813    public native JQueryElement load(Object eventData, EventFunc2 handler);
1814
1815    /**
1816     * Pass each element in the current matched set through a function, producing a new jQuery
1817     * object containing the return values.
1818     * @param callback A function object that will be invoked for each element in the current set.
1819     * @return self {@link JQueryElement}
1820     */
1821    public native JQueryElement map(FuncRet2<Integer, Element> callback);
1822
1823    /**
1824     * Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element.
1825     * @param handler A function to execute each time the event is triggered.
1826     * @return self {@link JQueryElement}
1827     */
1828    public native JQueryElement mousedown(EventFunc1 handler);
1829
1830    /**
1831     * Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element.
1832     * @param handler A function to execute each time the event is triggered.
1833     * @return self {@link JQueryElement}
1834     */
1835    public native JQueryElement mousedown(EventFunc2 handler);
1836
1837    /**
1838     * Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element.
1839     * @param eventData An object containing data that will be passed to the event handler.
1840     * @param handler A function to execute each time the event is triggered.
1841     * @return self {@link JQueryElement}
1842     */
1843    public native JQueryElement mousedown(Object eventData, EventFunc handler);
1844
1845    /**
1846     * Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element.
1847     * @param eventData An object containing data that will be passed to the event handler.
1848     * @param handler A function to execute each time the event is triggered.
1849     * @return self {@link JQueryElement}
1850     */
1851    public native JQueryElement mousedown(Object eventData, EventFunc1 handler);
1852
1853    /**
1854     * Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element.
1855     * @param eventData An object containing data that will be passed to the event handler.
1856     * @param handler A function to execute each time the event is triggered.
1857     * @return self {@link JQueryElement}
1858     */
1859    public native JQueryElement mousedown(Object eventData, EventFunc2 handler);
1860
1861    /**
1862     * Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element.
1863     * @return self {@link JQueryElement}
1864     */
1865    public native JQueryElement mousedown();
1866
1867    /**
1868     * Bind an event handler to the "mouseenter" JavaScript event, or trigger that event on an element.
1869     * @param handler A function to execute each time the event is triggered.
1870     * @return self {@link JQueryElement}
1871     */
1872    public native JQueryElement mouseenter(EventFunc1 handler);
1873
1874    /**
1875     * Bind an event handler to the "mouseenter" JavaScript event, or trigger that event on an element.
1876     * @param handler A function to execute each time the event is triggered.
1877     * @return self {@link JQueryElement}
1878     */
1879    public native JQueryElement mouseenter(EventFunc2 handler);
1880
1881    /**
1882     * Bind an event handler to the "mouseenter" JavaScript event, or trigger that event on an element.
1883     * @param eventData An object containing data that will be passed to the event handler.
1884     * @param handler A function to execute each time the event is triggered.
1885     * @return self {@link JQueryElement}
1886     */
1887    public native JQueryElement mouseenter(Object eventData, EventFunc handler);
1888
1889    /**
1890     * Bind an event handler to the "mouseenter" JavaScript event, or trigger that event on an element.
1891     * @param eventData An object containing data that will be passed to the event handler.
1892     * @param handler A function to execute each time the event is triggered.
1893     * @return self {@link JQueryElement}
1894     */
1895    public native JQueryElement mouseenter(Object eventData, EventFunc1 handler);
1896
1897    /**
1898     * Bind an event handler to the "mouseenter" JavaScript event, or trigger that event on an element.
1899     * @param eventData An object containing data that will be passed to the event handler.
1900     * @param handler A function to execute each time the event is triggered.
1901     * @return self {@link JQueryElement}
1902     */
1903    public native JQueryElement mouseenter(Object eventData, EventFunc2 handler);
1904
1905    /**
1906     * Bind an event handler to the "mouseenter" JavaScript event, or trigger that event on an element.
1907     * @return self {@link JQueryElement}
1908     */
1909    public native JQueryElement mouseenter();
1910
1911    /**
1912     * Bind an event handler to the "mouseleave" JavaScript event, or trigger that event on an element.
1913     * @param handler A function to execute each time the event is triggered.
1914     * @return self {@link JQueryElement}
1915     */
1916    public native JQueryElement mouseleave(EventFunc1 handler);
1917
1918    /**
1919     * Bind an event handler to the "mouseleave" JavaScript event, or trigger that event on an element.
1920     * @param handler A function to execute each time the event is triggered.
1921     * @return self {@link JQueryElement}
1922     */
1923    public native JQueryElement mouseleave(EventFunc2 handler);
1924
1925    /**
1926     * Bind an event handler to the "mouseleave" JavaScript event, or trigger that event on an element.
1927     * @param eventData An object containing data that will be passed to the event handler.
1928     * @param handler A function to execute each time the event is triggered.
1929     * @return self {@link JQueryElement}
1930     */
1931    public native JQueryElement mouseleave(Object eventData, EventFunc handler);
1932
1933    /**
1934     * Bind an event handler to the "mouseleave" JavaScript event, or trigger that event on an element.
1935     * @param eventData An object containing data that will be passed to the event handler.
1936     * @param handler A function to execute each time the event is triggered.
1937     * @return self {@link JQueryElement}
1938     */
1939    public native JQueryElement mouseleave(Object eventData, EventFunc1 handler);
1940
1941    /**
1942     * Bind an event handler to the "mouseleave" JavaScript event, or trigger that event on an element.
1943     * @param eventData An object containing data that will be passed to the event handler.
1944     * @param handler A function to execute each time the event is triggered.
1945     * @return self {@link JQueryElement}
1946     */
1947    public native JQueryElement mouseleave(Object eventData, EventFunc2 handler);
1948
1949    /**
1950     * Bind an event handler to the "mouseleave" JavaScript event, or trigger that event on an element.
1951     * @return self {@link JQueryElement}
1952     */
1953    public native JQueryElement mouseleave();
1954
1955    /**
1956     * Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element.
1957     * @param handler A function to execute each time the event is triggered.
1958     * @return self {@link JQueryElement}
1959     */
1960    public native JQueryElement mousemove(EventFunc1 handler);
1961
1962    /**
1963     * Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element.
1964     * @param handler A function to execute each time the event is triggered.
1965     * @return self {@link JQueryElement}
1966     */
1967    public native JQueryElement mousemove(EventFunc2 handler);
1968
1969    /**
1970     * Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element.
1971     * @param eventData An object containing data that will be passed to the event handler.
1972     * @param handler A function to execute each time the event is triggered.
1973     * @return self {@link JQueryElement}
1974     */
1975    public native JQueryElement mousemove(Object eventData, EventFunc handler);
1976
1977    /**
1978     * Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element.
1979     * @param eventData An object containing data that will be passed to the event handler.
1980     * @param handler A function to execute each time the event is triggered.
1981     * @return self {@link JQueryElement}
1982     */
1983    public native JQueryElement mousemove(Object eventData, EventFunc1 handler);
1984
1985    /**
1986     * Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element.
1987     * @param eventData An object containing data that will be passed to the event handler.
1988     * @param handler A function to execute each time the event is triggered.
1989     * @return self {@link JQueryElement}
1990     */
1991    public native JQueryElement mousemove(Object eventData, EventFunc2 handler);
1992
1993    /**
1994     * Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element.
1995     * @return self {@link JQueryElement}
1996     */
1997    public native JQueryElement mousemove();
1998
1999    /**
2000     * Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element.
2001     * @param handler A function to execute each time the event is triggered.
2002     * @return self {@link JQueryElement}
2003     */
2004    public native JQueryElement mouseout(EventFunc1 handler);
2005
2006    /**
2007     * Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element.
2008     * @param handler A function to execute each time the event is triggered.
2009     * @return self {@link JQueryElement}
2010     */
2011    public native JQueryElement mouseout(EventFunc2 handler);
2012
2013    /**
2014     * Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element.
2015     * @param eventData An object containing data that will be passed to the event handler.
2016     * @param handler A function to execute each time the event is triggered.
2017     * @return self {@link JQueryElement}
2018     */
2019    public native JQueryElement mouseout(Object eventData, EventFunc handler);
2020
2021    /**
2022     * Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element.
2023     * @param eventData An object containing data that will be passed to the event handler.
2024     * @param handler A function to execute each time the event is triggered.
2025     * @return self {@link JQueryElement}
2026     */
2027    public native JQueryElement mouseout(Object eventData, EventFunc1 handler);
2028
2029    /**
2030     * Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element.
2031     * @param eventData An object containing data that will be passed to the event handler.
2032     * @param handler A function to execute each time the event is triggered.
2033     * @return self {@link JQueryElement}
2034     */
2035    public native JQueryElement mouseout(Object eventData, EventFunc2 handler);
2036
2037    /**
2038     * Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element.
2039     * @return self {@link JQueryElement}
2040     */
2041    public native JQueryElement mouseout();
2042
2043    /**
2044     * Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element.
2045     * @param handler A function to execute each time the event is triggered.
2046     * @return self {@link JQueryElement}
2047     */
2048    public native JQueryElement mouseover(EventFunc1 handler);
2049
2050    /**
2051     * Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element.
2052     * @param handler A function to execute each time the event is triggered.
2053     * @return self {@link JQueryElement}
2054     */
2055    public native JQueryElement mouseover(EventFunc2 handler);
2056
2057    /**
2058     * Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element.
2059     * @param eventData An object containing data that will be passed to the event handler.
2060     * @param handler A function to execute each time the event is triggered.
2061     * @return self {@link JQueryElement}
2062     */
2063    public native JQueryElement mouseover(Object eventData, EventFunc handler);
2064
2065    /**
2066     * Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element.
2067     * @param eventData An object containing data that will be passed to the event handler.
2068     * @param handler A function to execute each time the event is triggered.
2069     * @return self {@link JQueryElement}
2070     */
2071    public native JQueryElement mouseover(Object eventData, EventFunc1 handler);
2072
2073    /**
2074     * Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element.
2075     * @param eventData An object containing data that will be passed to the event handler.
2076     * @param handler A function to execute each time the event is triggered.
2077     * @return self {@link JQueryElement}
2078     */
2079    public native JQueryElement mouseover(Object eventData, EventFunc2 handler);
2080
2081    /**
2082     * Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element.
2083     * @return self {@link JQueryElement}
2084     */
2085    public native JQueryElement mouseover();
2086
2087    /**
2088     * Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element.
2089     * @param handler A function to execute each time the event is triggered.
2090     * @return self {@link JQueryElement}
2091     */
2092    public native JQueryElement mouseup(EventFunc1 handler);
2093
2094    /**
2095     * Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element.
2096     * @param handler A function to execute each time the event is triggered.
2097     * @return self {@link JQueryElement}
2098     */
2099    public native JQueryElement mouseup(EventFunc2 handler);
2100
2101    /**
2102     * Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element.
2103     * @param eventData An object containing data that will be passed to the event handler.
2104     * @param handler A function to execute each time the event is triggered.
2105     * @return self {@link JQueryElement}
2106     */
2107    public native JQueryElement mouseup(Object eventData, EventFunc handler);
2108
2109    /**
2110     * Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element.
2111     * @param eventData An object containing data that will be passed to the event handler.
2112     * @param handler A function to execute each time the event is triggered.
2113     * @return self {@link JQueryElement}
2114     */
2115    public native JQueryElement mouseup(Object eventData, EventFunc1 handler);
2116
2117    /**
2118     * Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element.
2119     * @param eventData An object containing data that will be passed to the event handler.
2120     * @param handler A function to execute each time the event is triggered.
2121     * @return self {@link JQueryElement}
2122     */
2123    public native JQueryElement mouseup(Object eventData, EventFunc2 handler);
2124
2125    /**
2126     * Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element.
2127     * @return self {@link JQueryElement}
2128     */
2129    public native JQueryElement mouseup();
2130
2131    /**
2132     * Get the immediately following sibling of each element in the set of matched elements. If a selector
2133     * is provided, it retrieves the next sibling only if it matches that selector.
2134     * @return self {@link JQueryElement}
2135     */
2136    public native JQueryElement next();
2137
2138    /**
2139     * Get the immediately following sibling of each element in the set of matched elements. If a selector
2140     * is provided, it retrieves the next sibling only if it matches that selector.
2141     * @param selector A string containing a selector expression to match elements against.
2142     * @return self {@link JQueryElement}
2143     */
2144    public native JQueryElement next(String selector);
2145
2146    /**
2147     * Get all following siblings of each element in the set of matched elements, optionally
2148     * filtered by a selector.
2149     * @return self {@link JQueryElement}
2150     */
2151    public native JQueryElement nextAll();
2152
2153    /**
2154     * Get all following siblings of each element in the set of matched elements, optionally
2155     * filtered by a selector.
2156     * @param selector A string containing a selector expression to match elements against.
2157     * @return self {@link JQueryElement}
2158     */
2159    public native JQueryElement nextAll(String selector);
2160
2161    /**
2162     * Get all following siblings of each element up to but not including the element matched by
2163     * the selector, DOM node, or jQuery object passed.
2164     * @param selector A string containing a selector expression to indicate where to stop
2165     *                 matching following sibling elements.
2166     * @param filter A string containing a selector expression to match elements against.
2167     * @return self {@link JQueryElement}
2168     */
2169    public native JQueryElement nextUntil(String selector, String filter);
2170
2171    /**
2172     * Get all following siblings of each element up to but not including the element matched by
2173     * the selector, DOM node, or jQuery object passed.
2174     * @param element A DOM node indicating where to stop matching following sibling elements.
2175     * @return self {@link JQueryElement}
2176     */
2177    public native JQueryElement nextUntil(Element element);
2178
2179    /**
2180     * Get all following siblings of each element up to but not including the element matched by
2181     * the selector, DOM node, or jQuery object passed.
2182     * @param element A DOM node indicating where to stop matching following sibling elements.
2183     * @param filter A string containing a selector expression to match elements against.
2184     * @return self {@link JQueryElement}
2185     */
2186    public native JQueryElement nextUntil(Element element, String filter);
2187
2188    /**
2189     * Get all following siblings of each element up to but not including the element matched by
2190     * the selector, DOM node, or jQuery object passed.
2191     * @param element A jQuery object indicating where to stop matching following sibling elements.
2192     * @return self {@link JQueryElement}
2193     */
2194    public native JQueryElement nextUntil(JQueryElement element);
2195
2196    /**
2197     * Get all following siblings of each element up to but not including the element matched by
2198     * the selector, DOM node, or jQuery object passed.
2199     * @param element A jQuery object indicating where to stop matching following sibling elements.
2200     * @param filter A string containing a selector expression to match elements against.
2201     * @return self {@link JQueryElement}
2202     */
2203    public native JQueryElement nextUntil(JQueryElement element, String filter);
2204
2205    /**
2206     * Remove elements from the set of matched elements.
2207     * @param selector A string containing a selector expression, a DOM element, or an array of
2208     *                 elements to match against the set.
2209     * @return self {@link JQueryElement}
2210     */
2211    public native JQueryElement not(String selector);
2212
2213    /**
2214     * Remove elements from the set of matched elements.
2215     * @param function A function used as a test for each element in the set. It accepts two arguments,
2216     *                 index, which is the element's index in the jQuery collection, and element, which
2217     *                 is the DOM element. Within the function, this refers to the current DOM element.
2218     * @return self {@link JQueryElement}
2219     */
2220    public native JQueryElement not(FuncRet2<Integer, Element> function);
2221
2222    /**
2223     * Remove elements from the set of matched elements.
2224     * @param elements An existing jQuery object to match the current set of elements against.
2225     * @return self {@link JQueryElement}
2226     */
2227    public native JQueryElement not(Element... elements);
2228
2229    /**
2230     * Remove elements from the set of matched elements.
2231     * @param selection An existing jQuery object to match the current set of elements against.
2232     * @return self {@link JQueryElement}
2233     */
2234    public native JQueryElement not(JQueryElement selection);
2235
2236    /**
2237     * Remove an event handler.
2238     * @return self {@link JQueryElement}
2239     */
2240    public native JQueryElement off();
2241
2242    /**
2243     * Remove an event handler.
2244     * @param event A jQuery.Event object.
2245     * @return self {@link JQueryElement}
2246     */
2247    public native JQueryElement off(Event event);
2248
2249    /**
2250     * Remove an event handler.
2251     * @param events One or more space-separated event types and optional namespaces, or just
2252     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2253     * @return self {@link JQueryElement}
2254     */
2255    public native JQueryElement off(String events);
2256
2257    /**
2258     * Remove an event handler.
2259     * @param events One or more space-separated event types and optional namespaces, or just
2260     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2261     * @param handler A handler function previously attached for the event(s), or the special
2262     *                value false.
2263     * @return self {@link JQueryElement}
2264     */
2265    public native JQueryElement off(String events, EventFunc handler);
2266
2267    /**
2268     * Remove an event handler.
2269     * @param events One or more space-separated event types and optional namespaces, or just
2270     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2271     * @param handler A handler function previously attached for the event(s), or the special
2272     *                value false.
2273     * @return self {@link JQueryElement}
2274     */
2275    public native JQueryElement off(String events, EventFunc1 handler);
2276
2277    /**
2278     * Remove an event handler.
2279     * @param events One or more space-separated event types and optional namespaces, or just
2280     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2281     * @param handler A handler function previously attached for the event(s), or the special
2282     *                value false.
2283     * @return self {@link JQueryElement}
2284     */
2285    public native JQueryElement off(String events, EventFunc2 handler);
2286
2287    /**
2288     * Remove an event handler.
2289     * @param events One or more space-separated event types and optional namespaces, or just
2290     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2291     * @param handler A handler function previously attached for the event(s), or the special
2292     *                value false.
2293     * @return self {@link JQueryElement}
2294     */
2295    public native JQueryElement off(String events, EventFunc3 handler);
2296
2297    /**
2298     * Remove an event handler.
2299     * @param events One or more space-separated event types and optional namespaces, or just
2300     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2301     * @param selector A selector which should match the one originally passed to .off() when
2302     *                 attaching event handlers.
2303     * @param handler A handler function previously attached for the event(s), or the special
2304     *                value false.
2305     * @return self {@link JQueryElement}
2306     */
2307    public native JQueryElement off(String events, String selector, EventFunc handler);
2308
2309    /**
2310     * Remove an event handler.
2311     * @param events One or more space-separated event types and optional namespaces, or just
2312     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2313     * @param selector A selector which should match the one originally passed to .off() when
2314     *                 attaching event handlers.
2315     * @param handler A handler function previously attached for the event(s), or the special
2316     *                value false.
2317     * @return self {@link JQueryElement}
2318     */
2319    public native JQueryElement off(String events, String selector, EventFunc1 handler);
2320
2321    /**
2322     * Remove an event handler.
2323     * @param events One or more space-separated event types and optional namespaces, or just
2324     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2325     * @param selector A selector which should match the one originally passed to .off() when
2326     *                 attaching event handlers.
2327     * @param handler A handler function previously attached for the event(s), or the special
2328     *                value false.
2329     * @return self {@link JQueryElement}
2330     */
2331    public native JQueryElement off(String events, String selector, EventFunc2 handler);
2332
2333    /**
2334     * Remove an event handler.
2335     * @param events One or more space-separated event types and optional namespaces, or just
2336     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2337     * @param selector A selector which should match the one originally passed to .off() when
2338     *                 attaching event handlers.
2339     * @param handler A handler function previously attached for the event(s), or the special
2340     *                value false.
2341     * @return self {@link JQueryElement}
2342     */
2343    public native JQueryElement off(String events, String selector, EventFunc3 handler);
2344
2345    /**
2346     * Add an event handler.
2347     * @return self {@link JQueryElement}
2348     */
2349    public native JQueryElement on();
2350
2351    /**
2352     * Add an event handler.
2353     * @param event A jQuery.Event object.
2354     * @return self {@link JQueryElement}
2355     */
2356    public native JQueryElement on(Event event);
2357
2358    /**
2359     * Add an event handler.
2360     * @param events One or more space-separated event types and optional namespaces, or just
2361     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2362     * @return self {@link JQueryElement}
2363     */
2364    public native JQueryElement on(String events);
2365
2366    /**
2367     * Add an event handler.
2368     * @param events One or more space-separated event types and optional namespaces, or just
2369     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2370     * @param handler A handler function previously attached for the event(s), or the special
2371     *                value false.
2372     * @return self {@link JQueryElement}
2373     */
2374    public native JQueryElement on(String events, EventFunc handler);
2375
2376    /**
2377     * Add an event handler.
2378     * @param events One or more space-separated event types and optional namespaces, or just
2379     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2380     * @param handler A handler function previously attached for the event(s), or the special
2381     *                value false.
2382     * @return self {@link JQueryElement}
2383     */
2384    public native JQueryElement on(String events, EventFunc1 handler);
2385
2386    /**
2387     * Add an event handler.
2388     * @param events One or more space-separated event types and optional namespaces, or just
2389     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2390     * @param handler A handler function previously attached for the event(s), or the special
2391     *                value false.
2392     * @return self {@link JQueryElement}
2393     */
2394    public native JQueryElement on(String events, EventFunc2 handler);
2395
2396    /**
2397     * Add an event handler.
2398     * @param events One or more space-separated event types and optional namespaces, or just
2399     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2400     * @param handler A handler function previously attached for the event(s), or the special
2401     *                value false.
2402     * @return self {@link JQueryElement}
2403     */
2404    public native JQueryElement on(String events, EventFunc3 handler);
2405
2406    /**
2407     * Add an event handler.
2408     * @param events One or more space-separated event types and optional namespaces, or just
2409     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2410     * @param selector A selector which should match the one originally passed to .on() when
2411     *                 attaching event handlers.
2412     * @param handler A handler function previously attached for the event(s), or the special
2413     *                value false.
2414     * @return self {@link JQueryElement}
2415     */
2416    public native JQueryElement on(String events, String selector, EventFunc handler);
2417
2418    /**
2419     * Add an event handler.
2420     * @param events One or more space-separated event types and optional namespaces, or just
2421     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2422     * @param selector A selector which should match the one originally passed to .on() when
2423     *                 attaching event handlers.
2424     * @param handler A handler function previously attached for the event(s), or the special
2425     *                value false.
2426     * @return self {@link JQueryElement}
2427     */
2428    public native JQueryElement on(String events, String selector, EventFunc1 handler);
2429
2430    /**
2431     * Add an event handler.
2432     * @param events One or more space-separated event types and optional namespaces, or just
2433     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2434     * @param selector A selector which should match the one originally passed to .on() when
2435     *                 attaching event handlers.
2436     * @param handler A handler function previously attached for the event(s), or the special
2437     *                value false.
2438     * @return self {@link JQueryElement}
2439     */
2440    public native JQueryElement on(String events, String selector, EventFunc2 handler);
2441
2442    /**
2443     * Attach a handler to an event for the elements. The handler is
2444     * executed at most once per element per event type.
2445     * @return self {@link JQueryElement}
2446     */
2447    public native JQueryElement one();
2448
2449    /**
2450     * Attach a handler to an event for the elements. The handler is
2451     * executed at most once per element per event type.
2452     * @param event A jQuery.Event object.
2453     * @return self {@link JQueryElement}
2454     */
2455    public native JQueryElement one(Event event);
2456
2457    /**
2458     * Attach a handler to an event for the elements. The handler is
2459     * executed at most once per element per event type.
2460     * @param events One or more space-separated event types and optional namespaces, or just
2461     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2462     * @return self {@link JQueryElement}
2463     */
2464    public native JQueryElement one(String events);
2465
2466    /**
2467     * Attach a handler to an event for the elements. The handler is
2468     * executed at most once per element per event type.
2469     * @param events One or more space-separated event types and optional namespaces, or just
2470     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2471     * @param handler A handler function previously attached for the event(s), or the special
2472     *                value false.
2473     * @return self {@link JQueryElement}
2474     */
2475    public native JQueryElement one(String events, EventFunc handler);
2476
2477    /**
2478     * Attach a handler to an event for the elements. The handler is
2479     * executed at most once per element per event type.
2480     * @param events One or more space-separated event types and optional namespaces, or just
2481     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2482     * @param handler A handler function previously attached for the event(s), or the special
2483     *                value false.
2484     * @return self {@link JQueryElement}
2485     */
2486    public native JQueryElement one(String events, EventFunc1 handler);
2487
2488    /**
2489     * Attach a handler to an event for the elements. The handler is
2490     * executed at most once per element per event type.
2491     * @param events One or more space-separated event types and optional namespaces, or just
2492     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2493     * @param handler A handler function previously attached for the event(s), or the special
2494     *                value false.
2495     * @return self {@link JQueryElement}
2496     */
2497    public native JQueryElement one(String events, EventFunc2 handler);
2498
2499    /**
2500     * Attach a handler to an event for the elements. The handler is
2501     * executed at most once per element per event type.
2502     * @param events One or more space-separated event types and optional namespaces, or just
2503     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2504     * @param selector A selector which should match the one originally passed to .on() when
2505     *                 attaching event handlers.
2506     * @param handler A handler function previously attached for the event(s), or the special
2507     *                value false.
2508     * @return self {@link JQueryElement}
2509     */
2510    public native JQueryElement one(String events, String selector, EventFunc handler);
2511
2512    /**
2513     * Attach a handler to an event for the elements. The handler is
2514     * executed at most once per element per event type.
2515     * @param events One or more space-separated event types and optional namespaces, or just
2516     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2517     * @param selector A selector which should match the one originally passed to .on() when
2518     *                 attaching event handlers.
2519     * @param handler A handler function previously attached for the event(s), or the special
2520     *                value false.
2521     * @return self {@link JQueryElement}
2522     */
2523    public native JQueryElement one(String events, String selector, EventFunc1 handler);
2524
2525    /**
2526     * Attach a handler to an event for the elements. The handler is executed
2527     * at most once per element per event type.
2528     * @param events One or more space-separated event types and optional namespaces, or just
2529     *               namespaces, such as "click", "keydown.myPlugin", or ".myPlugin".
2530     * @param selector A selector which should match the one originally passed to .on() when
2531     *                 attaching event handlers.
2532     * @param handler A handler function previously attached for the event(s), or the special
2533     *                value false.
2534     * @return self {@link JQueryElement}
2535     */
2536    public native JQueryElement one(String events, String selector, EventFunc2 handler);
2537
2538    /**
2539     * Get the current coordinates of the first element in the set of matched elements,
2540     * relative to the document.
2541     * @return returns an object containing the properties top and left.
2542     */
2543    public native Offset offset();
2544
2545    /**
2546     * Set the current coordinates of every element in the set of matched elements,
2547     * relative to the document.
2548     * @param coordinates An object containing the properties top and left, which are numbers indicating
2549     *                    the new top and left coordinates for the elements.
2550     * @return self {@link JQueryElement}
2551     */
2552    public native JQueryElement offset(Offset coordinates);
2553
2554    /**
2555     * Set the current coordinates of every element in the set of matched elements,
2556     * relative to the document.
2557     * @param function A function to return the coordinates to set. Receives the index of the element in
2558     *                 the collection as the first argument and the current coordinates as the second argument.
2559     *                 The function should return an object with the new top and left properties.
2560     * @return self {@link JQueryElement}
2561     */
2562    public native JQueryElement offset(FuncRet2<Integer, Offset> function);
2563
2564    /**
2565     * Get the closest ancestor element that is positioned.
2566     * @return Closest jQuery parent element.
2567     */
2568    public native JQueryElement offsetParent();
2569
2570    /**
2571     * Get the current computed height for the first element in the set of matched elements, including
2572     * padding, border, and optionally margin. Returns a number (without "px") representation of the value
2573     * or null if called on an empty set of elements.
2574     * <pre><img src="https://api.jquery.com/resources/0042_04_03.png"/></pre>
2575     */
2576    public native int outerHeight();
2577
2578    /**
2579     * Get the current computed height for the first element in the set of matched elements, including
2580     * padding, border, and optionally margin. Returns a number (without "px") representation of the value
2581     * or null if called on an empty set of elements.
2582     * <pre><img src="https://api.jquery.com/resources/0042_04_03.png"/></pre>
2583     * @param includeMargin A Boolean indicating whether to include the element's margin in the calculation.
2584     */
2585    public native int outerHeight(boolean includeMargin);
2586
2587    /**
2588     * Set the CSS outer Height of each element in the set of matched elements.
2589     * @param value A number representing the number of pixels.
2590     * @return self {@link JQueryElement}
2591     */
2592    public native JQueryElement outerHeight(int value);
2593
2594    /**
2595     * Set the CSS outer Height of each element in the set of matched elements.
2596     * @param value A number along with an optional unit of measure appended (as a string).
2597     * @return self {@link JQueryElement}
2598     */
2599    public native JQueryElement outerHeight(String value);
2600
2601    /**
2602     * Set the CSS outer Height of each element in the set of matched elements.
2603     * @param function A function returning the outer height to set. Receives the index position
2604     *                 of the element in the set and the old outer height as arguments. Within the
2605     *                 function, this refers to the current element in the set.
2606     * @return self {@link JQueryElement}
2607     */
2608    public native JQueryElement outerHeight(Func2<Integer, Integer> function);
2609
2610    /**
2611     * Get the current computed width for the first element in the set of matched elements, including
2612     * padding, border, and optionally margin. Returns a number (without "px") representation of the value
2613     * or null if called on an empty set of elements.
2614     * <pre><img src="https://api.jquery.com/resources/0042_04_03.png"/></pre>
2615     */
2616    public native int outerWidth();
2617
2618    /**
2619     * Get the current computed width for the first element in the set of matched elements, including
2620     * padding, border, and optionally margin. Returns a number (without "px") representation of the value
2621     * or null if called on an empty set of elements.
2622     * <pre><img src="https://api.jquery.com/resources/0042_04_03.png"/></pre>
2623     * @param includeMargin A Boolean indicating whether to include the element's margin in the calculation.
2624     */
2625    public native int outerWidth(boolean includeMargin);
2626
2627    /**
2628     * Set the CSS outer Width of each element in the set of matched elements.
2629     * @param value A number representing the number of pixels.
2630     * @return self {@link JQueryElement}
2631     */
2632    public native JQueryElement outerWidth(int value);
2633
2634    /**
2635     * Set the CSS outer Width of each element in the set of matched elements.
2636     * @param value A number along with an optional unit of measure appended (as a string).
2637     * @return self {@link JQueryElement}
2638     */
2639    public native JQueryElement outerWidth(String value);
2640
2641    /**
2642     * Set the CSS outer Width of each element in the set of matched elements.
2643     * @param function A function returning the outer height to set. Receives the index position
2644     *                 of the element in the set and the old outer height as arguments. Within the
2645     *                 function, this refers to the current element in the set.
2646     * @return self {@link JQueryElement}
2647     */
2648    public native JQueryElement outerWidth(Func2<Integer, Integer> function);
2649
2650    /**
2651     * Get the parent of each element in the current set of matched elements, optionally
2652     * filtered by a selector.
2653     * @return self {@link JQueryElement}
2654     */
2655    public native JQueryElement parent();
2656
2657    /**
2658     * Get the parent of each element in the current set of matched elements, optionally
2659     * filtered by a selector.
2660     * @param selector A string containing a selector expression to match elements against.
2661     * @return self {@link JQueryElement}
2662     */
2663    public native JQueryElement parent(String selector);
2664
2665    /**
2666     * Get the ancestors of each element in the current set of matched elements, optionally
2667     * filtered by a selector.
2668     * @return self {@link JQueryElement}
2669     */
2670    public native JQueryElement parents();
2671
2672    /**
2673     * Get the ancestors of each element in the current set of matched elements, optionally
2674     * filtered by a selector.
2675     * @param selector A string containing a selector expression to match elements against.
2676     * @return self {@link JQueryElement}
2677     */
2678    public native JQueryElement parents(String selector);
2679
2680    /**
2681     * Get the ancestors of each element in the current set of matched elements, up to but not including
2682     * the element matched by the selector, DOM node, or jQuery object.
2683     * @param selector A string containing a selector expression to indicate where to
2684     *                 stop matching ancestor elements.
2685     * @return self {@link JQueryElement}
2686     */
2687    public native JQueryElement parentsUntil(String selector);
2688
2689    /**
2690     * Get the ancestors of each element in the current set of matched elements, up to but not including
2691     * the element matched by the selector, DOM node, or jQuery object.
2692     * @param selector A string containing a selector expression to indicate where to
2693     *                 stop matching ancestor elements.
2694     * @param filter A string containing a selector expression to match elements against.
2695     * @return self {@link JQueryElement}
2696     */
2697    public native JQueryElement parentsUntil(String selector, String filter);
2698
2699    /**
2700     * Get the ancestors of each element in the current set of matched elements, up to but not including
2701     * the element matched by the selector, DOM node, or jQuery object.
2702     * @param element A DOM node indicating where to stop matching ancestor elements.
2703     * @return self {@link JQueryElement}
2704     */
2705    public native JQueryElement parentsUntil(Element element);
2706
2707    /**
2708     * Get the ancestors of each element in the current set of matched elements, up to but not including
2709     * the element matched by the selector, DOM node, or jQuery object.
2710     * @param element A DOM node indicating where to stop matching ancestor elements.
2711     * @param filter A string containing a selector expression to match elements against.
2712     * @return self {@link JQueryElement}
2713     */
2714    public native JQueryElement parentsUntil(Element element, String filter);
2715
2716    /**
2717     * Get the ancestors of each element in the current set of matched elements, up to but not including
2718     * the element matched by the selector, DOM node, or jQuery object.
2719     * @param element A jQuery object indicating where to stop matching ancestor elements.
2720     * @return self {@link JQueryElement}
2721     */
2722    public native JQueryElement parentsUntil(JQueryElement element);
2723
2724    /**
2725     * Get the ancestors of each element in the current set of matched elements, up to but not including
2726     * the element matched by the selector, DOM node, or jQuery object.
2727     * @param element A jQuery object indicating where to stop matching ancestor elements.
2728     * @param filter A string containing a selector expression to match elements against.
2729     * @return self {@link JQueryElement}
2730     */
2731    public native JQueryElement parentsUntil(JQueryElement element, String filter);
2732
2733    /**
2734     * Get the current coordinates of the first element in the set of matched elements,
2735     * relative to the offset parent.
2736     * @return Position value as top and left.
2737     */
2738    public native Offset position();
2739
2740    /**
2741     * Get the immediately preceding sibling of each element in the set of matched elements,
2742     * optionally filtered by a selector.
2743     * @return self {@link JQueryElement}
2744     */
2745    public native JQueryElement prev();
2746
2747    /**
2748     * Get the immediately preceding sibling of each element in the set of matched elements,
2749     * optionally filtered by a selector.
2750     * @param selector A string containing a selector expression to match elements against.
2751     * @return self {@link JQueryElement}
2752     */
2753    public native JQueryElement prev(String selector);
2754
2755    /**
2756     * Get all preceding siblings of each element up to but not including the element matched
2757     * by the selector, DOM node, or jQuery object.
2758     * @return self {@link JQueryElement}
2759     */
2760    public native JQueryElement prevAll();
2761
2762    /**
2763     * Get all preceding siblings of each element up to but not including the element matched
2764     * by the selector, DOM node, or jQuery object.
2765     * @param selector A string containing a selector expression to match elements against.
2766     * @return self {@link JQueryElement}
2767     */
2768    public native JQueryElement prevAll(String selector);
2769
2770    /**
2771     * GGet all preceding siblings of each element up to but not including the element matched
2772     * by the selector, DOM node, or jQuery object.
2773     * @param selector A string containing a selector expression to indicate where to
2774     *                 stop matching ancestor elements.
2775     * @return self {@link JQueryElement}
2776     */
2777    public native JQueryElement prevUntil(String selector);
2778
2779    /**
2780     * Get all preceding siblings of each element up to but not including the element matched
2781     * by the selector, DOM node, or jQuery object.
2782     * @param selector A string containing a selector expression to indicate where to
2783     *                 stop matching ancestor elements.
2784     * @param filter A string containing a selector expression to match elements against.
2785     * @return self {@link JQueryElement}
2786     */
2787    public native JQueryElement prevUntil(String selector, String filter);
2788
2789    /**
2790     * Get all preceding siblings of each element up to but not including the element matched
2791     * by the selector, DOM node, or jQuery object.
2792     * @param element A DOM node indicating where to stop matching ancestor elements.
2793     * @return self {@link JQueryElement}
2794     */
2795    public native JQueryElement prevUntil(Element element);
2796
2797    /**
2798     * Get all preceding siblings of each element up to but not including the element matched
2799     * by the selector, DOM node, or jQuery object.
2800     * @param element A DOM node indicating where to stop matching ancestor elements.
2801     * @param filter A string containing a selector expression to match elements against.
2802     * @return self {@link JQueryElement}
2803     */
2804    public native JQueryElement prevUntil(Element element, String filter);
2805
2806    /**
2807     * Get all preceding siblings of each element up to but not including the element matched
2808     * by the selector, DOM node, or jQuery object.
2809     * @param element A jQuery object indicating where to stop matching ancestor elements.
2810     * @return self {@link JQueryElement}
2811     */
2812    public native JQueryElement prevUntil(JQueryElement element);
2813
2814    /**
2815     * Get all preceding siblings of each element up to but not including the element matched
2816     * by the selector, DOM node, or jQuery object.
2817     * @param element A jQuery object indicating where to stop matching ancestor elements.
2818     * @param filter A string containing a selector expression to match elements against.
2819     * @return self {@link JQueryElement}
2820     */
2821    public native JQueryElement prevUntil(JQueryElement element, String filter);
2822
2823    /**
2824     * Return a Promise object to observe when all actions of a certain type bound to the
2825     * collection, queued or not, have finished.
2826     * @return returns a dynamically generated Promise that is resolved once all actions of a certain
2827     * type bound to the collection, queued or not, have ended.
2828     */
2829    public native Promise promise();
2830
2831    /**
2832     * Return a Promise object to observe when all actions of a certain type bound to the
2833     * collection, queued or not, have finished.
2834     * @param type The type of queue that needs to be observed.
2835     * @return returns a dynamically generated Promise that is resolved once all actions of a certain
2836     * type bound to the collection, queued or not, have ended.
2837     */
2838    public native Promise promise(String type);
2839
2840    /**
2841     * Return a Promise object to observe when all actions of a certain type bound to the
2842     * collection, queued or not, have finished.
2843     * @param target Object onto which the promise methods have to be attached
2844     * @return returns a dynamically generated Promise that is resolved once all actions of a certain
2845     * type bound to the collection, queued or not, have ended.
2846     */
2847    public native Promise promise(Object target);
2848
2849    /**
2850     * Return a Promise object to observe when all actions of a certain type bound to the
2851     * collection, queued or not, have finished.
2852     * @param type The type of queue that needs to be observed.
2853     * @param target Object onto which the promise methods have to be attached
2854     * @return returns a dynamically generated Promise that is resolved once all actions of a certain
2855     * type bound to the collection, queued or not, have ended.
2856     */
2857    public native Promise promise(String type, Object target);
2858
2859    /**
2860     * Get the value of a property for the first element in the set of matched elements.
2861     * @param propertyName The name of the property to get.
2862     */
2863    public native Object prop(String propertyName);
2864
2865    /**
2866     * Set one or more properties for the set of matched elements.
2867     * @param propertyName The name of the property to set.
2868     * @param value A value to set for the property.
2869     * @return self {@link JQueryElement}
2870     */
2871    public native JQueryElement prop(String propertyName, Object value);
2872
2873    /**
2874     * Set one or more properties for the set of matched elements.
2875     * @param propertyName The name of the property to set.
2876     * @param function A function returning the value to set. Receives the index position of the
2877     *                 element in the set and the old property value as arguments. Within the function,
2878     *                 the keyword this refers to the current element.
2879     * @return self {@link JQueryElement}
2880     */
2881    public native JQueryElement prop(String propertyName, FuncRet2<Integer, Object> function);
2882
2883    /**
2884     * Set one or more properties for the set of matched elements.
2885     * @param properties An object of property-value pairs to set.
2886     * @return self {@link JQueryElement}
2887     */
2888    public native JQueryElement prop(Object properties);
2889
2890    /**
2891     * Add a collection of DOM elements onto the jQuery stack.
2892     * @param elements An array of elements to push onto the stack and make into a new jQuery object.
2893     * @return self {@link JQueryElement}
2894     */
2895    public native JQueryElement pushStack(Element... elements);
2896
2897    /**
2898     * Add a collection of DOM elements onto the jQuery stack.
2899     * @param elements An array of elements to push onto the stack and make into a new jQuery object.
2900     * @param name The name of a jQuery method that generated the array of elements.
2901     * @param arguments The arguments that were passed in to the jQuery method (for serialization).
2902     * @return self {@link JQueryElement}
2903     */
2904    public native JQueryElement pushStack(Element[] elements, String name, Object... arguments);
2905
2906    /**
2907     * Show the queue of functions to be executed on the matched elements.
2908     * @return Array with length matching queue items left.
2909     */
2910    public native Object[] queue();
2911
2912    /**
2913     * Show the queue of functions to be executed on the matched elements.
2914     * @param queueName A string containing the name of the queue. Defaults to fx, the standard
2915     *                  effects queue.
2916     * @return Array with length matching queue items left.
2917     */
2918    public native Object[] queue(String queueName);
2919
2920    /**
2921     * Manipulate the queue of functions to be executed, once for each matched element.
2922     * @param newQueue An array of functions to replace the current queue contents.
2923     * @return self {@link JQueryElement}
2924     */
2925    public native JQueryElement queue(Object[] newQueue);
2926
2927    /**
2928     * Manipulate the queue of functions to be executed, once for each matched element.
2929     * @param queueName A string containing the name of the queue. Defaults to fx, the standard
2930     *                  effects queue.
2931     * @param newQueue An array of functions to replace the current queue contents.
2932     * @return self {@link JQueryElement}
2933     */
2934    public native JQueryElement queue(String queueName, Object... newQueue);
2935
2936    /**
2937     * Manipulate the queue of functions to be executed, once for each matched element.
2938     * @param callback The new function to add to the queue, with a function to call that will
2939     *                 dequeue the next item.
2940     * @return self {@link JQueryElement}
2941     */
2942    public native JQueryElement queue(Func1<Func> callback);
2943
2944    /**
2945     * Manipulate the queue of functions to be executed, once for each matched element.
2946     * @param queueName A string containing the name of the queue. Defaults to fx, the standard
2947     *                  effects queue.
2948     * @param callback The new function to add to the queue, with a function to call that will
2949     *                 dequeue the next item.
2950     * @return self {@link JQueryElement}
2951     */
2952    public native JQueryElement queue(String queueName, Func1<Func> callback);
2953
2954    /**
2955     * Specify a function to execute when the DOM is fully loaded.
2956     * @param handler A function to execute after the DOM is ready.
2957     * @return self {@link JQueryElement}
2958     */
2959    public native JQueryElement ready(Func handler);
2960
2961    /**
2962     * Remove the set of matched elements from the DOM.
2963     * @return self {@link JQueryElement}
2964     */
2965    public native JQueryElement remove();
2966
2967    /**
2968     * Remove the set of matched elements from the DOM.
2969     * @param selector A selector expression that filters the set of matched elements to be removed.
2970     * @return self {@link JQueryElement}
2971     */
2972    public native JQueryElement remove(String selector);
2973
2974    /**
2975     * Remove an attribute from each element in the set of matched elements.
2976     * @param attributeName An attribute to remove; as of version 1.7, it can be a space-separated
2977     *                      list of attributes.
2978     * @return self {@link JQueryElement}
2979     */
2980    public native JQueryElement removeAttr(String attributeName);
2981
2982    /**
2983     * Remove a single class, multiple classes, or all classes from each element
2984     * in the set of matched elements.
2985     * @return self {@link JQueryElement}
2986     */
2987    public native JQueryElement removeClass();
2988
2989    /**
2990     * Remove a single class, multiple classes, or all classes from each element
2991     * in the set of matched elements.
2992     * @param className One or more space-separated classes to be removed from the class
2993     *                  attribute of each matched element.
2994     * @return self {@link JQueryElement}
2995     */
2996    public native JQueryElement removeClass(String className);
2997
2998    /**
2999     * Remove a single class, multiple classes, or all classes from each element in the set
3000     * of matched elements.
3001     * @param function A function returning one or more space-separated class names to be removed.
3002     *                 Receives the index position of the element in the set and the old class value
3003     *                 as arguments. Must return a String.
3004     * @return self {@link JQueryElement}
3005     */
3006    public native JQueryElement removeClass(FuncRet2<Integer, String> function);
3007
3008    /**
3009     * Remove a previously-stored piece of data.
3010     * @return self {@link JQueryElement}
3011     */
3012    public native JQueryElement removeData();
3013
3014    /**
3015     * Remove a previously-stored piece of data.
3016     * @param name A string naming the piece of data to delete.
3017     * @return self {@link JQueryElement}
3018     */
3019    public native JQueryElement removeData(String name);
3020
3021    /**
3022     * Remove a previously-stored piece of data.
3023     * @param list An array or space-separated string naming the pieces of data to delete.
3024     * @return self {@link JQueryElement}
3025     */
3026    public native JQueryElement removeData(String[] list);
3027
3028    /**
3029     * Remove a property for the set of matched elements.
3030     * @param propertyName The name of the property to remove.
3031     * @return self {@link JQueryElement}
3032     */
3033    public native JQueryElement removeProp(String propertyName);
3034
3035    /**
3036     * Replace each target element with the set of matched elements.
3037     * @param target A selector string of elements indicating which element(s) to replace.
3038     * @return self {@link JQueryElement}
3039     */
3040    public native JQueryElement replaceAll(String target);
3041
3042    /**
3043     * Replace each target element with the set of matched elements.
3044     * @param target A jQuery object of elements indicating which element(s) to replace.
3045     * @return self {@link JQueryElement}
3046     */
3047    public native JQueryElement replaceAll(JQueryElement target);
3048
3049    /**
3050     * Replace each target element with the set of matched elements.
3051     * @param target DOM element(s) indicating which element(s) to replace.
3052     * @return self {@link JQueryElement}
3053     */
3054    public native JQueryElement replaceAll(Element... target);
3055
3056    /**
3057     * Replace each element in the set of matched elements with the provided new content and
3058     * return the set of elements that was removed.
3059     * @param newContent The content to insert an HTML string.
3060     * @return self {@link JQueryElement}
3061     */
3062    public native JQueryElement replaceWith(String newContent);
3063
3064    /**
3065     * Replace each element in the set of matched elements with the provided new content and
3066     * return the set of elements that was removed.
3067     * @param newContent The content to insert, a jQuery object.
3068     * @return self {@link JQueryElement}
3069     */
3070    public native JQueryElement replaceWith(JQueryElement newContent);
3071
3072    /**
3073     * Replace each element in the set of matched elements with the provided new content and
3074     * return the set of elements that was removed.
3075     * @param newContent The content to insert, a DOM element(s).
3076     * @return self {@link JQueryElement}
3077     */
3078    public native JQueryElement replaceWith(Element... newContent);
3079
3080    /**
3081     * Replace each element in the set of matched elements with the provided new content and
3082     * return the set of elements that was removed.
3083     * @param function A function that returns content with which to replace the set of matched elements.
3084     * @return self {@link JQueryElement}
3085     */
3086    public native JQueryElement replaceWith(Func function);
3087
3088    /**
3089     * Bind an event handler to the "resize" JavaScript event, or trigger that event on an element.
3090     * @param handler A function to execute each time the event is triggered.
3091     * @return self {@link JQueryElement}
3092     */
3093    public native JQueryElement resize(EventFunc1 handler);
3094
3095    /**
3096     * Bind an event handler to the "resize" JavaScript event, or trigger that event on an element.
3097     * @param handler A function to execute each time the event is triggered.
3098     * @return self {@link JQueryElement}
3099     */
3100    public native JQueryElement resize(EventFunc2 handler);
3101
3102    /**
3103     * Bind an event handler to the "resize" JavaScript event, or trigger that event on an element.
3104     * @param eventData An object containing data that will be passed to the event handler.
3105     * @param handler A function to execute each time the event is triggered.
3106     * @return self {@link JQueryElement}
3107     */
3108    public native JQueryElement resize(Object eventData, EventFunc handler);
3109
3110    /**
3111     * Bind an event handler to the "resize" JavaScript event, or trigger that event on an element.
3112     * @param eventData An object containing data that will be passed to the event handler.
3113     * @param handler A function to execute each time the event is triggered.
3114     * @return self {@link JQueryElement}
3115     */
3116    public native JQueryElement resize(Object eventData, EventFunc1 handler);
3117
3118    /**
3119     * Bind an event handler to the "resize" JavaScript event, or trigger that event on an element.
3120     * @param eventData An object containing data that will be passed to the event handler.
3121     * @param handler A function to execute each time the event is triggered.
3122     * @return self {@link JQueryElement}
3123     */
3124    public native JQueryElement resize(Object eventData, EventFunc2 handler);
3125
3126    /**
3127     * Bind an event handler to the "resize" JavaScript event, or trigger that event on an element.
3128     * @return self {@link JQueryElement}
3129     */
3130    public native JQueryElement resize();
3131
3132    /**
3133     * Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element.
3134     * @param handler A function to execute each time the event is triggered.
3135     * @return self {@link JQueryElement}
3136     */
3137    public native JQueryElement scroll(EventFunc1 handler);
3138
3139    /**
3140     * Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element.
3141     * @param handler A function to execute each time the event is triggered.
3142     * @return self {@link JQueryElement}
3143     */
3144    public native JQueryElement scroll(EventFunc2 handler);
3145
3146    /**
3147     * Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element.
3148     * @param eventData An object containing data that will be passed to the event handler.
3149     * @param handler A function to execute each time the event is triggered.
3150     * @return self {@link JQueryElement}
3151     */
3152    public native JQueryElement scroll(Object eventData, EventFunc handler);
3153
3154    /**
3155     * Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element.
3156     * @param eventData An object containing data that will be passed to the event handler.
3157     * @param handler A function to execute each time the event is triggered.
3158     * @return self {@link JQueryElement}
3159     */
3160    public native JQueryElement scroll(Object eventData, EventFunc1 handler);
3161
3162    /**
3163     * Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element.
3164     * @param eventData An object containing data that will be passed to the event handler.
3165     * @param handler A function to execute each time the event is triggered.
3166     * @return self {@link JQueryElement}
3167     */
3168    public native JQueryElement scroll(Object eventData, EventFunc2 handler);
3169
3170    /**
3171     * Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element.
3172     * @return self {@link JQueryElement}
3173     */
3174    public native JQueryElement scroll();
3175
3176    /**
3177     * Get the current horizontal position of the scroll bar for the first element in the
3178     * set of matched elements.
3179     * @return The horizontal scroll position is the same as the number of pixels that are
3180     * hidden from view to the left of the scrollable area. If the scroll bar is at the very
3181     * left, or if the element is not scrollable, this number will be 0.
3182     */
3183    public native int scrollLeft();
3184
3185    /**
3186     * Set the current horizontal position of the scroll bar for each of the set of matched elements.
3187     * @param value An integer indicating the new position to set the scroll bar to.
3188     * @return self {@link JQueryElement}
3189     */
3190    public native JQueryElement scrollLeft(int value);
3191
3192    /**
3193     * Get the current vertical position of the scroll bar for the first element in the set of
3194     * matched elements or set the vertical position of the scroll bar for every matched element.
3195     * @return The vertical scroll position is the same as the number of pixels that are hidden
3196     * from view above the scrollable area. If the scroll bar is at the very top, or if the element
3197     * is not scrollable, this number will be 0.
3198     */
3199    public native int scrollTop();
3200
3201    /**
3202     * Set the current vertical position of the scroll bar for each of the set of matched elements.
3203     * @param value An integer indicating the new position to set the scroll bar to.
3204     * @return self {@link JQueryElement}
3205     */
3206    public native JQueryElement scrollTop(int value);
3207
3208    /**
3209     * Bind an event handler to the "select" JavaScript event, or trigger that event on an element.
3210     * @param handler A function to execute each time the event is triggered.
3211     * @return self {@link JQueryElement}
3212     */
3213    public native JQueryElement select(EventFunc1 handler);
3214
3215    /**
3216     * Bind an event handler to the "select" JavaScript event, or trigger that event on an element.
3217     * @param handler A function to execute each time the event is triggered.
3218     * @return self {@link JQueryElement}
3219     */
3220    public native JQueryElement select(EventFunc2 handler);
3221
3222    /**
3223     * Bind an event handler to the "select" JavaScript event, or trigger that event on an element.
3224     * @param eventData An object containing data that will be passed to the event handler.
3225     * @param handler A function to execute each time the event is triggered.
3226     * @return self {@link JQueryElement}
3227     */
3228    public native JQueryElement select(Object eventData, EventFunc handler);
3229
3230    /**
3231     * Bind an event handler to the "select" JavaScript event, or trigger that event on an element.
3232     * @param eventData An object containing data that will be passed to the event handler.
3233     * @param handler A function to execute each time the event is triggered.
3234     * @return self {@link JQueryElement}
3235     */
3236    public native JQueryElement select(Object eventData, EventFunc1 handler);
3237
3238    /**
3239     * Bind an event handler to the "select" JavaScript event, or trigger that event on an element.
3240     * @param eventData An object containing data that will be passed to the event handler.
3241     * @param handler A function to execute each time the event is triggered.
3242     * @return self {@link JQueryElement}
3243     */
3244    public native JQueryElement select(Object eventData, EventFunc2 handler);
3245
3246    /**
3247     * Bind an event handler to the "select" JavaScript event, or trigger that event on an element.
3248     * @return self {@link JQueryElement}
3249     */
3250    public native JQueryElement select();
3251
3252    /**
3253     * Encode a set of form elements as a string for submission.
3254     * @return he .serialize() method creates a text string in standard URL-encoded notation.
3255     * It can act on a jQuery object that has selected individual form controls.
3256     */
3257    public native String serialize();
3258
3259    /**
3260     * Encode a set of form elements as an array of names and values.
3261     * @return creates a JavaScript array of objects, ready to be encoded as a JSON string.
3262     * It operates on a jQuery collection of forms and/or form controls.
3263     */
3264    public native Object[] serializeArray();
3265
3266    /**
3267     * Display the matched elements.
3268     * @return self {@link JQueryElement}
3269     */
3270    public native JQueryElement show();
3271
3272    /**
3273     * Display the matched elements.
3274     * @param duration A string or number determining how long the animation will run.
3275     * @return self {@link JQueryElement}
3276     */
3277    public native JQueryElement show(double duration);
3278
3279    /**
3280     * Display the matched elements.
3281     * @param complete A function to call once the animation is complete, called once per
3282     *                 matched element.
3283     * @return self {@link JQueryElement}
3284     */
3285    public native JQueryElement show(Func complete);
3286
3287    /**
3288     * Display the matched elements.
3289     * @param duration A string or number determining how long the animation will run.
3290     * @param complete A function to call once the animation is complete, called once per
3291     *                 matched element.
3292     * @return self {@link JQueryElement}
3293     */
3294    public native JQueryElement show(double duration, Func complete);
3295
3296    /**
3297     * Display the matched elements.
3298     * @param options A map of additional options to pass to the method.
3299     * @return self {@link JQueryElement}
3300     */
3301    public native JQueryElement show(AnimateOptions options);
3302
3303    /**
3304     * Get the siblings of each element in the set of matched elements, optionally
3305     * filtered by a selector.
3306     * @return self {@link JQueryElement}
3307     */
3308    public native JQueryElement siblings();
3309
3310    /**
3311     * Get the siblings of each element in the set of matched elements, optionally
3312     * filtered by a selector.
3313     * @param selector A string containing a selector expression to match elements against.
3314     * @return self {@link JQueryElement}
3315     */
3316    public native JQueryElement siblings(String selector);
3317
3318    /**
3319     * Return the number of elements in the jQuery object.
3320     * @deprecated Use the .length property instead.
3321     */
3322    public native int size();
3323
3324    /**
3325     * Reduce the set of matched elements to a subset specified by a range of indices.
3326     * @param start An integer indicating the 0-based position at which the elements begin to be
3327     *              selected. If negative, it indicates an offset from the end of the set.
3328     * @return self {@link JQueryElement}
3329     */
3330    public native JQueryElement slice(int start);
3331
3332    /**
3333     * Reduce the set of matched elements to a subset specified by a range of indices.
3334     * @param start An integer indicating the 0-based position at which the elements begin to be
3335     *              selected. If negative, it indicates an offset from the end of the set.
3336     * @param end An integer indicating the 0-based position at which the elements stop being selected.
3337     *            If negative, it indicates an offset from the end of the set. If omitted, the range
3338     *            continues until the end of the set.
3339     * @return self {@link JQueryElement}
3340     */
3341    public native JQueryElement slice(int start, int end);
3342
3343    /**
3344     * Display the matched elements with a sliding motion.
3345     * @return self {@link JQueryElement}
3346     */
3347    public native JQueryElement slideDown();
3348
3349    /**
3350     * Display the matched elements with a sliding motion.
3351     * @param duration A string or number determining how long the animation will run.
3352     * @return self {@link JQueryElement}
3353     */
3354    public native JQueryElement slideDown(double duration);
3355
3356    /**
3357     * Display the matched elements with a sliding motion.
3358     * @param complete A function to call once the animation is complete, called once per
3359     *                 matched element.
3360     * @return self {@link JQueryElement}
3361     */
3362    public native JQueryElement slideDown(Func complete);
3363
3364    /**
3365     * Display the matched elements with a sliding motion.
3366     * @param duration A string or number determining how long the animation will run.
3367     * @param complete A function to call once the animation is complete, called once per
3368     *                 matched element.
3369     * @return self {@link JQueryElement}
3370     */
3371    public native JQueryElement slideDown(double duration, Func complete);
3372
3373    /**
3374     * Display the matched elements with a sliding motion.
3375     * @param options A map of additional options to pass to the method.
3376     * @return self {@link JQueryElement}
3377     */
3378    public native JQueryElement slideDown(AnimateOptions options);
3379
3380    /**
3381     * Display or hide the matched elements with a sliding motion.
3382     * @return self {@link JQueryElement}
3383     */
3384    public native JQueryElement slideToggle();
3385
3386    /**
3387     * Display or hide the matched elements with a sliding motion.
3388     * @param duration A string or number determining how long the animation will run.
3389     * @return self {@link JQueryElement}
3390     */
3391    public native JQueryElement slideToggle(double duration);
3392
3393    /**
3394     * Display or hide the matched elements with a sliding motion.
3395     * @param complete A function to call once the animation is complete, called once per
3396     *                 matched element.
3397     * @return self {@link JQueryElement}
3398     */
3399    public native JQueryElement slideToggle(Func complete);
3400
3401    /**
3402     * Display or hide the matched elements with a sliding motion.
3403     * @param duration A string or number determining how long the animation will run.
3404     * @param complete A function to call once the animation is complete, called once per
3405     *                 matched element.
3406     * @return self {@link JQueryElement}
3407     */
3408    public native JQueryElement slideToggle(double duration, Func complete);
3409
3410    /**
3411     * Display or hide the matched elements with a sliding motion.
3412     * @param options A map of additional options to pass to the method.
3413     * @return self {@link JQueryElement}
3414     */
3415    public native JQueryElement slideToggle(AnimateOptions options);
3416
3417    /**
3418     * Hide the matched elements with a sliding motion.
3419     * @return self {@link JQueryElement}
3420     */
3421    public native JQueryElement slideUp();
3422
3423    /**
3424     * Hide the matched elements with a sliding motion.
3425     * @param duration A string or number determining how long the animation will run.
3426     * @return self {@link JQueryElement}
3427     */
3428    public native JQueryElement slideUp(double duration);
3429
3430    /**
3431     * Hide the matched elements with a sliding motion.
3432     * @param complete A function to call once the animation is complete, called once per
3433     *                 matched element.
3434     * @return self {@link JQueryElement}
3435     */
3436    public native JQueryElement slideUp(Func complete);
3437
3438    /**
3439     * Hide the matched elements with a sliding motion.
3440     * @param duration A string or number determining how long the animation will run.
3441     * @param complete A function to call once the animation is complete, called once per
3442     *                 matched element.
3443     * @return self {@link JQueryElement}
3444     */
3445    public native JQueryElement slideUp(double duration, Func complete);
3446
3447    /**
3448     * Hide the matched elements with a sliding motion.
3449     * @param options A map of additional options to pass to the method.
3450     * @return self {@link JQueryElement}
3451     */
3452    public native JQueryElement slideUp(AnimateOptions options);
3453
3454    /**
3455     * Stop the currently-running animation on the matched elements.
3456     * @param clearQueue A Boolean indicating whether to remove queued animation as well.
3457     *                   Defaults to false.
3458     * @return self {@link JQueryElement}
3459     */
3460    public native JQueryElement stop(boolean clearQueue);
3461
3462    /**
3463     * Stop the currently-running animation on the matched elements.
3464     * @param queue The name of the queue in which to stop animations.
3465     * @param clearQueue A Boolean indicating whether to remove queued animation as well.
3466     *                   Defaults to false.
3467     * @return self {@link JQueryElement}
3468     */
3469    public native JQueryElement stop(String queue, boolean clearQueue);
3470
3471    /**
3472     * Stop the currently-running animation on the matched elements.
3473     * @param clearQueue A Boolean indicating whether to remove queued animation as well.
3474     *                   Defaults to false.
3475     * @param jumpToEnd A Boolean indicating whether to complete the current animation
3476     *                  immediately. Defaults to false.
3477     * @return self {@link JQueryElement}
3478     */
3479    public native JQueryElement stop(boolean clearQueue, boolean jumpToEnd);
3480
3481    /**
3482     * Stop the currently-running animation on the matched elements.
3483     * @param queue The name of the queue in which to stop animations.
3484     * @param clearQueue A Boolean indicating whether to remove queued animation as well.
3485     *                   Defaults to false.
3486     * @param jumpToEnd A Boolean indicating whether to complete the current animation
3487     *                  immediately. Defaults to false.
3488     * @return self {@link JQueryElement}
3489     */
3490    public native JQueryElement stop(String queue, boolean clearQueue, boolean jumpToEnd);
3491
3492    /**
3493     * Bind an event handler to the "submit" JavaScript event, or trigger that event on an element.
3494     * @param handler A function to execute each time the event is triggered.
3495     * @return self {@link JQueryElement}
3496     */
3497    public native JQueryElement submit(EventFunc1 handler);
3498
3499    /**
3500     * Bind an event handler to the "submit" JavaScript event, or trigger that event on an element.
3501     * @param handler A function to execute each time the event is triggered.
3502     * @return self {@link JQueryElement}
3503     */
3504    public native JQueryElement submit(EventFunc2 handler);
3505
3506    /**
3507     * Bind an event handler to the "submit" JavaScript event, or trigger that event on an element.
3508     * @param eventData An object containing data that will be passed to the event handler.
3509     * @param handler A function to execute each time the event is triggered.
3510     * @return self {@link JQueryElement}
3511     */
3512    public native JQueryElement submit(Object eventData, EventFunc handler);
3513
3514    /**
3515     * Bind an event handler to the "submit" JavaScript event, or trigger that event on an element.
3516     * @param eventData An object containing data that will be passed to the event handler.
3517     * @param handler A function to execute each time the event is triggered.
3518     * @return self {@link JQueryElement}
3519     */
3520    public native JQueryElement submit(Object eventData, EventFunc1 handler);
3521
3522    /**
3523     * Bind an event handler to the "submit" JavaScript event, or trigger that event on an element.
3524     * @param eventData An object containing data that will be passed to the event handler.
3525     * @param handler A function to execute each time the event is triggered.
3526     * @return self {@link JQueryElement}
3527     */
3528    public native JQueryElement submit(Object eventData, EventFunc2 handler);
3529
3530    /**
3531     * Bind an event handler to the "submit" JavaScript event, or trigger that event on an element.
3532     * @return self {@link JQueryElement}
3533     */
3534    public native JQueryElement submit();
3535
3536    /**
3537     * Get the combined text contents of each element in the set of matched elements,
3538     * including their descendants.
3539     * @return a string containing the combined text of all matched elements.
3540     */
3541    public native String text();
3542
3543    /**
3544     * Set the content of each element in the set of matched elements to the specified text.
3545     * @param text The text to set as the content of each matched element.
3546     * @return self {@link JQueryElement}
3547     */
3548    public native JQueryElement text(String text);
3549
3550    /**
3551     * Set the content of each element in the set of matched elements to the specified text.
3552     * @param value The text to set as the content of each matched element.
3553     * @return self {@link JQueryElement}
3554     */
3555    public native JQueryElement text(int value);
3556
3557    /**
3558     * Set the content of each element in the set of matched elements to the specified text.
3559     * @param value The text to set as the content of each matched element.
3560     * @return self {@link JQueryElement}
3561     */
3562    public native JQueryElement text(boolean value);
3563
3564    /**
3565     * Set the content of each element in the set of matched elements to the specified text.
3566     * @param function  A function returning the text content to set. Receives the index
3567     *                  position of the element in the set and the old text value as arguments.
3568     *                  Must return a String value.
3569     * @return self {@link JQueryElement}
3570     */
3571    public native JQueryElement text(FuncRet2<Integer, String> function);
3572
3573    /**
3574     * Retrieve all the elements contained in the jQuery set, as an array.
3575     * @return all of the elements in the jQuery set.
3576     */
3577    public native Element[] toArray();
3578
3579    /**
3580     * Display or hide the matched elements.
3581     * @return self {@link JQueryElement}
3582     */
3583    public native JQueryElement toggle();
3584
3585    /**
3586     * Display or hide the matched elements.
3587     * @param duration A string or number determining how long the animation will run.
3588     * @return self {@link JQueryElement}
3589     */
3590    public native JQueryElement toggle(double duration);
3591
3592    /**
3593     * Display or hide the matched elements.
3594     * @param duration A string or number determining how long the animation will run.
3595     * @param easing A string indicating which easing function to use for the transition.
3596     * @return self {@link JQueryElement}
3597     */
3598    public native JQueryElement toggle(double duration, String easing);
3599
3600    /**
3601     * Display or hide the matched elements.
3602     * @param duration A string or number determining how long the animation will run.
3603     * @param complete A function to call once the animation is complete, called once
3604     *                 per matched element.
3605     * @return self {@link JQueryElement}
3606     */
3607    public native JQueryElement toggle(double duration, Func complete);
3608
3609    /**
3610     * Display or hide the matched elements.
3611     * @param options A map of additional options to pass to the method.
3612     * @return self {@link JQueryElement}
3613     */
3614    public native JQueryElement toggle(AnimateOptions options);
3615
3616    /**
3617     * Display or hide the matched elements.
3618     * @param display Use true to show the element or false to hide it.
3619     * @return self {@link JQueryElement}
3620     */
3621    public native JQueryElement toggle(boolean display);
3622
3623    /**
3624     * Add or remove one or more classes from each element in the set of matched elements,
3625     * depending on either the class's presence or the value of the state argument.
3626     * @param className One or more class names (separated by spaces) to be toggled for
3627     *                  each element in the matched set.
3628     * @return self {@link JQueryElement}
3629     */
3630    public native JQueryElement toggleClass(String className);
3631
3632    /**
3633     * Add or remove one or more classes from each element in the set of matched elements,
3634     * depending on either the class's presence or the value of the state argument.
3635     * @param state A Boolean (not just truthy/falsy) value to determine whether the class
3636     *              should be added or removed.
3637     * @return self {@link JQueryElement}
3638     */
3639    public native JQueryElement toggleClass(boolean state);
3640
3641    /**
3642     * Add or remove one or more classes from each element in the set of matched elements,
3643     * depending on either the class's presence or the value of the state argument.
3644     * @param className One or more class names (separated by spaces) to be toggled for
3645     *                  each element in the matched set.
3646     * @param state A Boolean (not just truthy/falsy) value to determine whether the class
3647     *              should be added or removed.
3648     * @return self {@link JQueryElement}
3649     */
3650    public native JQueryElement toggleClass(String className, boolean state);
3651
3652    /**
3653     * Add or remove one or more classes from each element in the set of matched elements,
3654     * depending on either the class's presence or the value of the state argument.
3655     * @param function A function that returns class names to be toggled in the class attribute
3656     *                 of each element in the matched set. Receives the index position of the element
3657     *                 in the set, the old class value, and the state as arguments.
3658     * @return self {@link JQueryElement}
3659     */
3660    public native JQueryElement toggleClass(FuncRet3<Integer, String, Boolean> function);
3661
3662    /**
3663     * Add or remove one or more classes from each element in the set of matched elements,
3664     * depending on either the class's presence or the value of the state argument.
3665     * @param function A function that returns class names to be toggled in the class attribute
3666     *                 of each element in the matched set. Receives the index position of the element
3667     *                 in the set, the old class value, and the state as arguments.
3668     * @param state A Boolean (not just truthy/falsy) value to determine whether the class
3669     *              should be added or removed.
3670     * @return self {@link JQueryElement}
3671     */
3672    public native JQueryElement toggleClass(FuncRet3<Integer, String, Boolean> function, boolean state);
3673
3674    /**
3675     * Execute all handlers and behaviors attached to the matched elements for
3676     * the given event type.
3677     * @param event A jQuery.Event object.
3678     * @param extraParameters Additional parameters to pass along to the event handler.
3679     * @return self {@link JQueryElement}
3680     */
3681    public native JQueryElement trigger(Event event, Object... extraParameters);
3682
3683    /**
3684     * Execute all handlers and behaviors attached to the matched elements for
3685     * the given event type.
3686     * @param eventType A string containing a JavaScript event type, such as click or submit.
3687     * @param extraParameters Additional parameters to pass along to the event handler.
3688     * @return self {@link JQueryElement}
3689     */
3690    public native JQueryElement trigger(String eventType, Object[] extraParameters);
3691
3692    /**
3693     * Execute all handlers and behaviors attached to the matched elements for
3694     * the given event type.
3695     * @param eventType A string containing a JavaScript event type, such as click or submit.
3696     * @param extraParameters Additional parameter to pass along to the event handler.
3697     * @return self {@link JQueryElement}
3698     */
3699    public native JQueryElement trigger(String eventType, Object extraParameters);
3700
3701    /**
3702     * Execute all handlers attached to an element for an event.
3703     * @param eventType A string containing a JavaScript event type, such as click or submit.
3704     * @param extraParameters Additional parameters to pass along to the event handler.
3705     * @return self {@link JQueryElement}
3706     */
3707    public native Object triggerHandler(String eventType, Object... extraParameters);
3708
3709    /**
3710     * Execute all handlers attached to an element for an event.
3711     * @param event A jQuery.Event object.
3712     * @param extraParameters Additional parameters to pass along to the event handler.
3713     * @return self {@link JQueryElement}
3714     */
3715    public native Object triggerHandler(Event event, Object... extraParameters);
3716
3717    /**
3718     * Remove a previously-attached event handler from the elements.
3719     * @return self {@link JQueryElement}
3720     */
3721    public native JQueryElement unbind();
3722
3723    /**
3724     * Remove a previously-attached event handler from the elements.
3725     * @param event A jQuery.Event object.
3726     * @return self {@link JQueryElement}
3727     */
3728    public native JQueryElement unbind(Event event);
3729
3730    /**
3731     * Remove a previously-attached event handler from the elements.
3732     * @param eventType A string containing a JavaScript event type, such as click or submit.
3733     * @return self {@link JQueryElement}
3734     */
3735    public native JQueryElement unbind(String eventType);
3736
3737    /**
3738     * Remove a previously-attached event handler from the elements.
3739     * @param eventType A string containing a JavaScript event type, such as click or submit.
3740     * @param handler A handler function previously attached for the event(s), or the special
3741     *                value false.
3742     * @return self {@link JQueryElement}
3743     */
3744    public native JQueryElement unbind(String eventType, EventFunc handler);
3745
3746    /**
3747     * Remove a previously-attached event handler from the elements.
3748     * @param eventType A string containing a JavaScript event type, such as click or submit.
3749     * @param handler A handler function previously attached for the event(s), or the special
3750     *                value false.
3751     * @return self {@link JQueryElement}
3752     */
3753    public native JQueryElement unbind(String eventType, EventFunc1 handler);
3754
3755    /**
3756     * Remove a previously-attached event handler from the elements.
3757     * @param eventType A string containing a JavaScript event type, such as click or submit.
3758     * @param handler A handler function previously attached for the event(s), or the special
3759     *                value false.
3760     * @return self {@link JQueryElement}
3761     */
3762    public native JQueryElement unbind(String eventType, EventFunc2 handler);
3763
3764    /**
3765     * Remove a previously-attached event handler from the elements.
3766     * @param eventType A string containing a JavaScript event type, such as click or submit.
3767     * @param falsed Unbinds the corresponding 'return false' function that was bound
3768     *               using .bind( eventType, false ).
3769     * @return self {@link JQueryElement}
3770     */
3771    public native JQueryElement unbind(String eventType, boolean falsed);
3772
3773    /**
3774     * Wrap an HTML structure around each element in the set of matched elements.
3775     * @param wrappingElement A selector or HTML string specifying the structure to wrap around the
3776     *                        matched elements. A selector matching more than one element, the first
3777     *                        element will be used.
3778     * @return self {@link JQueryElement}
3779     */
3780    public native JQueryElement wrap(String wrappingElement);
3781
3782    /**
3783     * Wrap an HTML structure around each element in the set of matched elements.
3784     * @param wrappingElement An element specifying the structure to wrap around the matched elements.
3785     * @return self {@link JQueryElement}
3786     */
3787    public native JQueryElement wrap(Element wrappingElement);
3788
3789    /**
3790     * Wrap an HTML structure around each element in the set of matched elements.
3791     * @param wrappingElement A jQuery object specifying the structure to wrap around the matched elements.
3792     *                        When you pass a jQuery collection containing more than one element, or a
3793     *                        selector matching more than one element, the first element will be used.
3794     * @return self {@link JQueryElement}
3795     */
3796    public native JQueryElement wrap(JQueryElement wrappingElement);
3797
3798    /**
3799     * Wrap an HTML structure around each element in the set of matched elements.
3800     * @param function A callback function returning the HTML content or jQuery object to wrap around the
3801     *                 matched elements. Receives the index position of the element in the set as an argument.
3802     *                 Within the function, this refers to the current element in the set. Must return a String
3803     *                 or jQuery element.
3804     * @return self {@link JQueryElement}
3805     */
3806    public native JQueryElement wrap(FuncRet1<Integer> function);
3807
3808    /**
3809     * Wrap an HTML structure around all elements in the set of matched elements.
3810     * @param wrappingElement A selector or HTML string specifying the structure to wrap around the
3811     *                        matched elements. A selector matching more than one element, the first
3812     *                        element will be used.
3813     * @return self {@link JQueryElement}
3814     */
3815    public native JQueryElement wrapAll(String wrappingElement);
3816
3817    /**
3818     * Wrap an HTML structure around all elements in the set of matched elements.
3819     * @param wrappingElement An element specifying the structure to wrap around the matched elements.
3820     * @return self {@link JQueryElement}
3821     */
3822    public native JQueryElement wrapAll(Element wrappingElement);
3823
3824    /**
3825     * Wrap an HTML structure around all elements in the set of matched elements.
3826     * @param wrappingElement A jQuery object specifying the structure to wrap around the matched elements.
3827     *                        When you pass a jQuery collection containing more than one element, or a
3828     *                        selector matching more than one element, the first element will be used.
3829     * @return self {@link JQueryElement}
3830     */
3831    public native JQueryElement wrapAll(JQueryElement wrappingElement);
3832
3833    /**
3834     * Wrap an HTML structure around all elements in the set of matched elements.
3835     * @param function A callback function returning the HTML content or jQuery object to wrap around the
3836     *                 matched elements. Receives the index position of the element in the set as an argument.
3837     *                 Within the function, this refers to the current element in the set. Must return a String
3838     *                 or jQuery element.
3839     * @return self {@link JQueryElement}
3840     */
3841    public native JQueryElement wrapAll(FuncRet1<Integer> function);
3842
3843    /**
3844     * Wrap an HTML structure around the content of each element in the set of matched elements.
3845     * @param wrappingElement A selector or HTML string specifying the structure to wrap around the
3846     *                        matched elements. A selector matching more than one element, the first
3847     *                        element will be used.
3848     * @return self {@link JQueryElement}
3849     */
3850    public native JQueryElement wrapInner(String wrappingElement);
3851
3852    /**
3853     * Wrap an HTML structure around the content of each element in the set of matched elements.
3854     * @param wrappingElement An element specifying the structure to wrap around the matched elements.
3855     * @return self {@link JQueryElement}
3856     */
3857    public native JQueryElement wrapInner(Element wrappingElement);
3858
3859    /**
3860     * Wrap an HTML structure around the content of each element in the set of matched elements.
3861     * @param wrappingElement A jQuery object specifying the structure to wrap around the matched elements.
3862     *                        When you pass a jQuery collection containing more than one element, or a
3863     *                        selector matching more than one element, the first element will be used.
3864     * @return self {@link JQueryElement}
3865     */
3866    public native JQueryElement wrapInner(JQueryElement wrappingElement);
3867
3868    /**
3869     * Wrap an HTML structure around the content of each element in the set of matched elements.
3870     * @param function A callback function returning the HTML content or jQuery object to wrap around the
3871     *                 matched elements. Receives the index position of the element in the set as an argument.
3872     *                 Within the function, this refers to the current element in the set. Must return a String
3873     *                 or jQuery element.
3874     * @return self {@link JQueryElement}
3875     */
3876    public native JQueryElement wrapInner(FuncRet1<Integer> function);
3877
3878    /**
3879     * Remove the parents of the set of matched elements from the DOM,
3880     * leaving the matched elements in their place.
3881     * @return self {@link JQueryElement}
3882     */
3883    public native JQueryElement unwrap();
3884
3885    /**
3886     * Get the current value of the first element in the set of matched elements.
3887     */
3888    public native Object val();
3889
3890    /**
3891     * Set the value of each element in the set of matched elements.
3892     * @param value A string of text corresponding to the value of each matched element
3893     *              to set as selected/checked.
3894     * @return self {@link JQueryElement}
3895     */
3896    public native JQueryElement val(String value);
3897
3898    /**
3899     * Set the value of each element in the set of matched elements.
3900     * @param value a number corresponding to the value of each matched element to set
3901     *              as selected/checked.
3902     * @return self {@link JQueryElement}
3903     */
3904    public native JQueryElement val(int value);
3905
3906    /**
3907     * Set the value of each element in the set of matched elements.
3908     * @param value An array of strings corresponding to the value of each matched element
3909     *              to set as selected/checked.
3910     * @return self {@link JQueryElement}
3911     */
3912    public native JQueryElement val(String[] value);
3913
3914    /**
3915     * Get the current computed width for the first element in the set of matched elements.
3916     * <pre><img src="https://api.jquery.com/resources/0042_04_04.png"/></pre>
3917     */
3918    public native int width();
3919
3920    /**
3921     * Set the CSS width of each element in the set of matched elements.
3922     * @param width An integer representing the number of pixels.
3923     * @return self {@link JQueryElement}
3924     */
3925    public native JQueryElement width(int width);
3926
3927    /**
3928     * Set the CSS width of each element in the set of matched elements.
3929     * @param width An integer along with an optional unit of measure appended (as a string).
3930     * @return self {@link JQueryElement}
3931     */
3932    public native JQueryElement width(String width);
3933
3934    /**
3935     * Set the CSS width of each element in the set of matched elements.
3936     * @param function A function returning the width to set. Receives the index position of
3937     *                 the element in the set and the old width as arguments. Within the function,
3938     *                 this refers to the current element in the set. Must return a String or Number
3939     * @return self {@link JQueryElement}
3940     */
3941    public native JQueryElement width(FuncRet2<Integer, Integer> function);
3942}