123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390 |
- Object subclass: #JQuery
- instanceVariableNames: 'jquery'
- category: 'JQuery'!
- !JQuery methodsFor: 'DOM insertion'!
- append: anObject
- "Append anObject at the end of the element."
- anObject appendToJQuery: self
- !
- appendElement: anElement
- "Append anElement at the end of the element.
- Dont't call this method directly, use #append: instead"
- self call: 'append' withArgument: anElement
- !
- appendToJQuery: aJQuery
- aJQuery appendElement: jquery
- !
- contents: anObject
- self empty.
- self append: anObject
- !
- empty
- ^self call: 'empty'
- ! !
- !JQuery methodsFor: 'accessing'!
- jquery
- ^jquery
- ! !
- !JQuery methodsFor: 'attributes'!
- removeAttribute: aString
- "Remove an attribute from each element in the set of matched elements."
- ^self call: 'removeAttribute' withArgument: aString
- !
- attr: aString
- "Get the value of an attribute for the first element in the set of matched elements."
- ^self call: 'attr' withArgument: aString
- !
- val
- "Get the current value of the first element in the set of matched elements."
- ^self call: 'val'
- !
- val: aString
- self call: 'val' withArgument: aString
- !
- attrAt: aString put: anotherString
- "Set the value of an attribute for the first element in the set of matched elements."
- <self['@jquery'].attr(aString, anotherString)>
- ! !
- !JQuery methodsFor: 'css'!
- cssAt: aString
- <return self['@jquery'].css(aString)>
- !
- cssAt: aString put: anotherString
- <self['@jquery'].css(aString, anotherString)>
- !
- addClass: aString
- "Adds the specified class(es) to each of the set of matched elements."
- self call: 'addClass' withArgument: aString
- !
- removeClass: aString
- "Remove a single class, multiple classes, or all classes from each element in the set of matched elements."
- self call: 'removeClass' withArgument: aString
- !
- toggleClass: aString
- "Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument."
- self call: 'toggleClass' withArgument: aString
- !
- height
- "Get the current computed height for the first element in the set of matched elements."
- ^self call: 'height'
- !
- height: anInteger
- self call: 'height' withArgument: anInteger
- !
- width: anInteger
- self call: 'width' withArgument: anInteger
- !
- width
- "Get the current computed width for the first element in the set of matched elements."
- ^self call: 'width'
- !
- innerHeight
- "Get the current computed height for the first element in the set of matched elements, including padding but not border."
- ^self call: 'innerHeight'
- !
- innerWidth
- "Get the current computed width for the first element in the set of matched elements, including padding but not border."
- ^self call: 'innerWidth'
- !
- outerHeight
- "Get the current computed height for the first element in the set of matched elements, including padding, border, and optionally margin."
- ^self call: 'outerHeight'
- !
- outerWidth
- "Get the current computed width for the first element in the set of matched elements, including padding and border."
- ^self call: 'outerWidth'
- !
- top
- "Get the current y coordinate of the first element in the set of matched elements, relative to the offset parent."
- ^(self call: 'position') basicAt: 'top'
- !
- left
- "Get the current x coordinate of the first element in the set of matched elements, relative to the offset parent."
- ^(self call: 'position') basicAt: 'left'
- !
- offsetLeft
- "Get the current coordinates of the first element in the set of matched elements, relative to the document."
- ^(self call: 'offset') basicAt: 'left'
- !
- offsetTop
- "Get the current coordinates of the first element in the set of matched elements, relative to the document."
- ^(self call: 'offset') basicAt: 'top'
- !
- scrollLeft
- "Get the current horizontal position of the scroll bar for the first element in the set of matched elements."
- ^self call: 'scrollLeft'
- !
- scrollTop
- "Get the current vertical position of the scroll bar for the first element in the set of matched elements."
- ^self call: 'scrollTop'
- !
- scrollLeft: anInteger
- self call: 'scrollLeft' withArgument: anInteger
- !
- scrollTop: anInteger
- self call: 'scrollTop' withArgument: anInteger
- ! !
- !JQuery methodsFor: 'effects'!
- fadeIn
- self call: 'fadeIn'
- !
- slideDown
- self call: 'slideDown'
- !
- fadeInSlow
- self call: 'fadeIn' withArgument: 'slow'
- !
- fadeOut
- self call: 'fadeOut'
- !
- fadeOutSlow
- self call: 'fadeOut' withArgument: 'slow'
- !
- slideUp
- self call: 'slideUp'
- !
- fadeOut: aString do: aBlock
- <self['@jquery'].fadeOut(aString, aBlock)>
- ! !
- !JQuery methodsFor: 'enumerating'!
- do: aBlock
- self elementsDo: [:anElement| aBlock value: (JQuery fromElement: anElement)]
- ! !
- !JQuery methodsFor: 'events'!
- focus
- self call: 'focus'
- !
- show
- self call: 'show'
- !
- hide
- self call: 'hide'
- !
- remove
- self call: 'remove'
- !
- on: anEventString do: aBlock
- "Attach aBlock for anEventString on the element"
- <self['@jquery'].bind(anEventString, function(e){aBlock(e, self)})>
- !
- removeEvents: aString
- "Unbind all handlers attached to the event aString"
- self call: 'unbind' withArgument: aString
- !
- onLoadDo: aBlock
- "Bind an event handler to the 'load' JavaScript event."
- self call: 'load' withArgument: aBlock
- ! !
- !JQuery methodsFor: 'initialization'!
- initializeWithJQueryObject: anObject
- jquery := anObject
- ! !
- !JQuery methodsFor: 'private'!
- call: aString
- <return self['@jquery'][aString]()>
- !
- call: aString withArgument: anObject
- <return self['@jquery'][aString](anObject)>
- !
- elementsDo: aBlock
- "Iterate over a jQuery object, executing a function for each matched element."
- <self['@jquery'].each(function(index, element){aBlock(element, self)})>
- ! !
- !JQuery methodsFor: 'testing'!
- hasClass: aString
- "Determine whether any of the matched elements are assigned the given class."
- ^self call: 'hasClass' withArgument: aString
- ! !
- !JQuery methodsFor: 'traversing'!
- find: aSelector
- "Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element."
- ^ self call: 'find' withArgument: aSelector
- ! !
- !JQuery class methodsFor: 'instance creation'!
- fromString: aString
- | newJQuery |
- <newJQuery = jQuery(String(aString))>.
- ^self from: newJQuery
- !
- from: anObject
- ^self new
- initializeWithJQueryObject: anObject;
- yourself
- !
- window
- <return self._from_(jQuery(window))>
- !
- body
- <return self._from_(jQuery('body'))>
- !
- document
- <return self._from_(jQuery(document))>
- !
- fromElement: anElement
- | newJQuery |
- <newJQuery = jQuery(anElement)>.
- ^self from: newJQuery
- !
- documentReady: aBlock
- <jQuery(document).ready(aBlock)>
- ! !
- Object subclass: #Ajax
- instanceVariableNames: 'settings'
- category: 'JQuery'!
- !Ajax commentStamp!
- instance variable names:
- - settings A set of key/value pairs that configure the Ajax request. All settings are optional.
- Full list of settings options at http://api.jquery.com/jQuery.ajax/!
- !Ajax methodsFor: 'accessing'!
- at: aKey
- ^settings at: aKey ifAbsent: [nil]
- !
- at: aKey put: aValue
- settings at: aKey put: aValue
- !
- url
- ^self at: 'url'
- !
- url: aString
- self at: 'url' put: aString
- ! !
- !Ajax methodsFor: 'actions'!
- send
- <jQuery.ajax(self['@settings'])>
- ! !
- !Ajax methodsFor: 'callbacks'!
- onSuccessDo: aBlock
- "Set action to execute when Ajax request is successful. Pass received data as block argument. Block arguments: data, textStatus, jqXHR"
- self at: 'success' put: aBlock
- !
- onCompleteDo: aBlock
- "A block to be called when the request finishes (after success and error callbacks are executed). Block arguments: jqXHR, textStatus"
- self at: 'complete' put: aBlock
- !
- onErrorDo: aBlock
- "A block to be called if the request fails.Block arguments: jqXHR, textStatus, errorThrown"
- self at: 'error' put: aBlock
- ! !
- !Ajax methodsFor: 'initialization'!
- initialize
- super initialize.
- settings := Dictionary new
- ! !
- !Ajax class methodsFor: 'instance creation'!
- url: aString
- ^self new
- url: aString;
- yourself
- ! !
- !BlockClosure methodsFor: '*JQuery'!
- appendToJQuery: aJQuery
- self value: (HTMLCanvas onJQuery: aJQuery)
- ! !
- !String methodsFor: '*JQuery'!
- asJQuery
- ^JQuery fromString: self
- !
- appendToJQuery: aJQuery
- <aJQuery._appendElement_(String(self))>
- ! !
- !HTMLCanvas methodsFor: '*JQuery'!
- appendToJQuery: aJQuery
- aJQuery appendElement: root element
- ! !
|