Patch 5 #50

Merged
darylteo merged 2 commits from patch-5 into master 2016-01-05 01:14:29 -05:00
2 changed files with 31 additions and 0 deletions

View File

@@ -53,14 +53,26 @@ var linkAction = function(el, event) {
this.loadUrl(el.href, clone(this.options)) this.loadUrl(el.href, clone(this.options))
} }
var isDefaultPrevented = function(event) {
return event.defaultPrevented || event.returnValue === false;
}
module.exports = function(el) { module.exports = function(el) {
var that = this var that = this
on(el, "click", function(event) { on(el, "click", function(event) {
if (isDefaultPrevented(event)) {
return
}
linkAction.call(that, el, event) linkAction.call(that, el, event)
}) })
on(el, "keyup", function(event) { on(el, "keyup", function(event) {
if (isDefaultPrevented(event)) {
return
}
// Dont break browser special behavior on links (like page in new window) // Dont break browser special behavior on links (like page in new window)
if (event.which > 1 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) { if (event.which > 1 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) {
el.setAttribute(attrKey, "modifier") el.setAttribute(attrKey, "modifier")

View File

@@ -56,3 +56,22 @@ tape("test attach link prototype method", function(t) {
t.end() t.end()
}) })
tape("test attach link preventDefaulted events", function(t) {
var callbacked = false
var a = document.createElement("a")
attachLink.call({
options: {},
loadUrl: function() {
callbacked = true
}
}, a)
a.href = "#"
on(a, "click", preventDefault)
trigger(a, "click")
t.equal(callbacked, false, "events that are preventDefaulted should not fire callback")
t.end()
})