Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: opal/opal-jquery
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 8695afc6f28c
Choose a base ref
...
head repository: opal/opal-jquery
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: d7b69ad6af7f
Choose a head ref
  • 2 commits
  • 2 files changed
  • 1 contributor

Commits on Nov 1, 2013

  1. Copy the full SHA
    44791f7 View commit details
  2. Copy the full SHA
    d7b69ad View commit details
Showing with 64 additions and 34 deletions.
  1. +30 −2 opal/opal-jquery/element.rb
  2. +34 −32 opal/opal-jquery/event.rb
32 changes: 30 additions & 2 deletions opal/opal-jquery/element.rb
Original file line number Diff line number Diff line change
@@ -274,12 +274,40 @@ def empty?
alias empty? none?

def on(name, sel = nil, &block)
`sel == nil ? #{self}.on(name, block) : #{self}.on(name, sel, block)`
%x{
var wrapper = function(evt) {
if (evt.preventDefault) {
evt = #{Event.new `evt`};
}
return block.apply(null, arguments);
};
block._jq_wrap = wrapper;
if (sel == nil) {
self.on(name, wrapper);
}
else {
self.on(name, sel, wrapper);
}
}

block
end

def off(name, sel, block = nil)
`block == nil ? #{self}.off(name, sel) : #{self}.off(name, sel, block)`
%x{
if (sel == null) {
return self.off(name);
}
else if (block === nil) {
return self.off(name, sel._jq_wrap);
}
else {
return self.off(name, sel, block._jq_wrap);
}
}
end

alias size length
66 changes: 34 additions & 32 deletions opal/opal-jquery/event.rb
Original file line number Diff line number Diff line change
@@ -1,83 +1,85 @@
#Class.bridge_class 'Event', `$.Event`

# Wraps native jQuery event objects.
class Event
%x{
var bridge_class = $.Event;
#{self}._proto = bridge_class.prototype, def = #{self}._proto;
bridge_class.prototype._klass = #{self};
}

include Kernel
def initialize(native)
@native = native
end

def [](name)
`#{self}[name]`
`#@native[name]`
end

def type
@type
`#@native.type`
end


##
# Element

def current_target
`$(#{self}.currentTarget)`
`$(#@native.currentTarget)`
end

def target
`$(#{self}.target)`
`$(#@native.target)`
end


##
# Propagation

def default_prevented?
`#{self}.isDefaultPrevented()`
`#@native.isDefaultPrevented()`
end

# Stops propagation and prevents default action.
def kill
stop_propagation
prevent_default
def prevent_default
`#@native.preventDefault()`
end

alias_native :prevent_default, :preventDefault
def propagation_stopped?
`#@native.propagationStopped()`
end

alias_native :propagation_stopped?, :propagationStopped
def stop_propagation
`#@native.stopPropagation()`
end

alias_native :stop_propagation, :stopPropagation
def stop_immediate_propagation
`#@native.stopImmediatePropagation()`
end

alias_native :stop_immediate_propagation, :stopImmediatePropagation
# Stops propagation and prevents default action.
def kill
stop_propagation
prevent_default
end

##
# Keyboard/Mouse/Touch

def page_x
@pageX
`#@native.pageX`
end

def page_y
@pageY
`#@native.pageY`
end

def touch_x
`#{self}.originalEvent.touches[0].pageX`
`#@native.originalEvent.touches[0].pageX`
end

def touch_y
`#{self}.originalEvent.touches[0].pageY`
`#@native.originalEvent.touches[0].pageY`
end

def ctrl_key
@ctrlKey
`#@native.ctrlKey`
end

def key_code
@keyCode
`#@native.keyCode`
end

def which
@which
`#@native.which`
end
end