15.02.2013 Views

JavaScript Examples Bible - UserWorks Technologies

JavaScript Examples Bible - UserWorks Technologies

JavaScript Examples Bible - UserWorks Technologies

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 1 ✦ Generic HTML Element Objects (Chapter 15)<br />

Listing 15-37: Using Drag-Related Event Handlers<br />

<br />

<br />

Dragging Event Handlers<br />

<br />

TD {text-align:center}<br />

TH {text-decoration:underline}<br />

.blanks {text-decoration:underline}<br />

<br />

<br />

var timer<br />

function setupDrag() {<br />

if (event.srcElement.tagName != “TD”) {<br />

// don’t allow dragging for any other elements<br />

event.returnValue = false<br />

} else {<br />

// setup array of data to be passed to drop target<br />

var passedData = [event.srcElement.innerText,<br />

event.srcElement.className]<br />

// store it as a string<br />

event.dataTransfer.setData(“Text”, passedData.join(“:”))<br />

event.dataTransfer.effectAllowed = “copy”<br />

timer = new Date()<br />

}<br />

}<br />

function timeIt() {<br />

if (event.srcElement.tagName == “TD” && timer) {<br />

if ((new Date()) - timer > 2000) {<br />

alert(“Sorry, time is up. Try again.”)<br />

timer = 0<br />

}<br />

}<br />

}<br />

function handleDrop() {<br />

var elem = event.srcElement<br />

var passedData = event.dataTransfer.getData(“Text”)<br />

var errMsg = “”<br />

if (passedData) {<br />

// reconvert passed string to an array<br />

passedData = passedData.split(“:”)<br />

if (elem.id == “blank1”) {<br />

if (passedData[1] == “noun”) {<br />

event.dataTransfer.dropEffect = “copy”<br />

event.srcElement.innerText = passedData[0]<br />

} else {<br />

errMsg = “You can’t put an adjective into the noun placeholder.”<br />

}<br />

} else if (elem.id == “blank2”) {<br />

if (passedData[1] == “adjective”) {<br />

event.dataTransfer.dropEffect = “copy”<br />

Continued<br />

105<br />

elementObject.onDrag

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!