Event Reference In Handler Functions

Feb 23, 2007

As far as readability and consistency, which is better in your opinion (or if functional difference, that I didn't account for,)

Event.observe($('txtName'), 'keypress', handleKeyPress);
Choose one:
A.
Code:
function handleKeyPress(event) {
alert(event.keyCode);
}
B.
Code:
function handleKeyPress(evt) {
evt = evt || window.event;
alert(evt.keyCode);
}
C.
Code:
function handleKeyPress(evt) {
evt = evt ? evt : window.event;
alert(evt.keyCode);
}

View 2 Replies


ADVERTISEMENT

Getting An Object Instance Reference In An Event Handler

Jan 3, 2006

I've been playing around with JS for a while, but I've not ever found fantastic learning resources. I'm comfortable with other programming languages, so I'm very interested in OOP programming for JS, and I've started to use tools like the Prototype library for that purpose.

However, one problem has consistently caused me problems whenever I'm writing a JS Class. How can I get a reference to the specific class instance from inside an event handler that I create with a class method. Let me give an example of what I want to do:

(This code is using the Prototype library...)

myClass = Class.create();
myClass.prototype = {
makeLink: function(obj) {
// Out here, "this" refers to the instance of the myClass Class
obj.innerHTML = ''
obj.onclick = function() {
// In here, "this" refers to the clicked on element.
// How do I get a reference to the instance of myClass in here?
}
}

Here's the best way that I know how to do this right now. It seems to work in Firefox alright, but doesn't seem to work in IE:

myClass = Class.create();
myClass.prototype = {
makeLink: function(obj) {
obj.innerHTML = ''
self = this; // Save a reference to class instance as "self"
obj.onclick = function() {
// Self is evaluated to instance reference at time of assignment to onclick
self.linkClicked();
}

linkClicked: function() {
// Do something useful here
}

}

Is there a more elegant way to do this? I could just create all of my event handlers for objects outside of the class in procedural code where I already have a reference to the class object, but I like to wrap these things up inside the class, because sometimes they get significantly more complicated than this very simple one. Anybody have any solutions? This has to be a common design pattern...

View 8 Replies View Related

Traditional Event Handler With Functions?

Aug 8, 2011

I know that there are two ways to declare an event in javascript. code...

Now, how can the second method work with functions that have parameters??? Since we can't use parenthesis, how do we pass in the arguments?!

View 1 Replies View Related

One Event Handler Provoking Another

Jul 23, 2005

I'm seeing surprising behavior, consistent across Opera, Firefox, and IE.
An event handler is changing the value of an element, and there is apparently
no Change event being generated for the element. A simple illustration is,
make an INPUT element with an onchange; type in a new value, the Change
event handler is called. But make a button whose Click handler changes the
value, and the Change handler does not get called.

It appears that events are not generated while an event handler is running.
Can this be true?

View 3 Replies View Related

Event Handler For Enter Key

Aug 11, 2005

How can I interrupt the enter key so it won't trigger unwanted events on my
web page? I have tried this:

var defaultEventHandler = obj.getEvent("onkeydown");

var myEventHandler = function(event){
if(event.keyCode==13){
alert(obj.getProperty("selection/index"));
}
else{
defaultEventHandler.call(this, event);
}
}
obj.setEvent("onkeydown", myEventHandler);

But it won't even enter the function.

View 3 Replies View Related

Event Handler Won't Work ?

Apr 5, 2011

I got following document:

When you click the main button, will one of the six images get a background image, and you can then press the image with the background image, and get your "reflextime".

But it won't work. When I press the image, were the new background image has shown, you can click on it and get your time - why?'

View 8 Replies View Related

Add A New Function To An Event Handler

Jan 12, 2006

I try to add a function to be triggered also within an event (which already has a function). I coded it, unfortunatelly one line of the code should be different for IE and Moz. I try to find a common way without using a browser detector... Any ideea? The red line works for Mozilla, the blue one for IE:

function addFunc(){
var e = document.getElementsByTagName('*');
for(var i=0;i<e.length;i++){
if(e[i].getAttribute('onclick')||e[i].getAttribute('onclick')!=null){// Moz || IE
//var f = new Function(e[i].getAttribute('onclick'));
var f = e[i].getAttribute('onclick');
e[i].onclick=function(){f();otherFunction()}
}}} Code:

View 6 Replies View Related

Event Handler For All Anchors

Oct 19, 2005

I have no problem attaching an event handler to a single anchor labelled with an id. But I can't get the following to work on all anchors, meaning nothing happens. Any idea about what's wrong here? Code:

View 1 Replies View Related

Onkeyup Event Handler

Dec 14, 2006

Im using onKeyUp on a text input field and everytime some information is gathered from a database through ajax.

Is there anyway to cancel onKeyUp events that are within X seconds of the previous event trigger? I dont want to use setTimeout because i dont want them called at all.

View 4 Replies View Related

Event Handler Not Called / Fix It?

Jan 11, 2010

I modified a particular page in the following way:

I ran an init function on window.onload, which iterated thorugh the checkboxes on the page and assigned an event handler function - let's call it validate() to each checkbox.

I tested it in the big 5 browsers and ran into a strange issue in I.E. only -

let's say there are the following checkboxes code...

When I click on "box1" the function is not called. When check "box2" the function is called but by "box1", when I click on "box3" the function is called by "box2" and so forth...

View 6 Replies View Related

Reference To The Object An Event Was Attached To?

May 30, 2006

If I have several links with onClick events pointing to the same function, how can I get a reference back to the link that was clicked? I'd like to change the link text after the onClick fires so the user knows something is happening, without having to create and assign id's to every link.

View 5 Replies View Related

Problem With IE6 Not Registering An Event Handler

Nov 22, 2006

I'm trying to dynamically create an image map for a particular image on my website, and I'm running into an issue where I try to register the "mouseover" and "mouseout" events for the AREAs of my image map.

Here is an abbreviated version of my code:

View 4 Replies View Related

Change Event Handler Programatically

Jul 20, 2005

I want to change the event handler for a form field, using JS code. But
there doesn't seem to be a way to reference it. MyForm.SomeField.onChange
is undefined. Anyone know if there's a way to do this?

View 1 Replies View Related

JQuery :: Event Handler In A Loop?

Jul 11, 2010

I've many div with sequence of ids like d1 d2 d3 ... and I need to listen to their click event so I'm using a loop to add an event handler to them, Here it's my code:

for(var i = 0; i < $ds.length; i++){
var $d = $ds[i];
var xFunc = function(e){
document.title = "d: "+$d;

[Code]....

But when I click on each of them always the title goes to "d: 4" where 4 is the last value in $ds.

View 1 Replies View Related

JQuery :: Event Handler On Drop Down Box?

Sep 17, 2010

I'm creating a drop down menu so that when a user clicks on the drop down arrow and then hovers over one of the options, a bubble comes up and does a validation. The thing is that everything works fine in Firefox, but not in IE or Chrome. The problem is that the .mouseover() function doesn't work on the <option> tags in IE and Chrome, but it works fine in Firefox because apparently FF is the only browser that supports it.

View 3 Replies View Related

JQuery :: How To Get Event Handler Function

Jun 9, 2009

<label id="mylabel" onclick="myOnclickFunction()">My Label</label>

How to get the "myOnclickFunction()" _string_ with jQuery? JavaScript getAttribute("onclick") works fine, but I want to do it through jQuery.

View 1 Replies View Related

Minor Event Handler Irritation?

May 8, 2011

I have a form with a text box. As you know, if a user has previously entered data into that text box from the same machine, then a dropdown list appears in the browser showing previously entered values. That's fine; however I have an OnKeyUp event on this box so if a user selects from the dropdown list then the event isn't triggered. Is there any way to recognise this action as an event? None of the normal event handlers appear to do it.

View 6 Replies View Related

Onclick Event Handler Not Running When Run Twice

Mar 25, 2011

i have registered a validation function as the onclick event handler. It runs for the first time but does not run when i click on the button the second time. ( this is because i have put an aert box in the validation function and it does not show up when i click on the submit button for the second time)

here is the code

Code:

<input type="submit" value="Submit" action="submit.php " onClick="return validate('add_item_form');">

Code:

function validate(form_name){
validate=1;
string="";

[Code]....

when i leave all the fields of the form blank then the error message is displayed. But when i click on the submit button again then the validation function does not run.

View 1 Replies View Related

Event Handler On Link With Bind?

Feb 19, 2010

I am working on a project that takes links on a page (Not all, depends on if they are Merchandise links or partner links), and passes some parameters to a tracking js call.The problem is, I don't want to put 'onclicks" on every href as there could be a hundred on a page and many of the links are dynamically generated on the backend.So, I was thinking of creating a function that took in parameters from each of the links that are pressed. we have two links (there will be many more, but for an example sake).

<a href="somelink.html" id="linka">link a</a>
<javascript>
var cu = new Linktracker({

[code]...

Should I use just "bind" or "bindAsEventListener"?Since each link on the page is unique and will pass different values, what is the best way to do this without putting "onclicks" on every link?

View 1 Replies View Related

Passing An Array Into An Event Handler?

Apr 28, 2011

I'm having trouble passing an array into an event handler.This does not work:

var lightbulb = [1,1,1,0,1,0]
var banana = [0,0,1,1,0,1]
function changetextimage(arr){

[code]....

View 8 Replies View Related

Pass Arguments To Event Handler?

Jun 19, 2009

I'm use prototype quite a lot for ajax calls, but have always used inline onclicks. I'm trying to be less obtrusive by creating event handlers/listeners.I used to do this with the aid of pHp to place arguments into the function (usually via 'while loop'):

<li><a href="#" onclick="dofunction(arg1,arg2);">item 1</a></li>
<li><a href="#" onclick="dofunction(arg1,arg2);">item 2</a></li>
<li><a href="#" onclick="dofunction(arg1,arg2);">item 3</a></li>

[code]....

View 8 Replies View Related

Extracting Inline Event Handler?

Jun 10, 2010

i have two links,i left the second one alone so you can see what result i want. but the first link is where i am attempting to remove the inline event handler (onclick) but i want the same result.

View 1 Replies View Related

Add OnClick Event Handler To Each Banner

Feb 11, 2009

I've successfully used the Random-Order javascript on my site for years to shuffle around a number of banners on my main page.I now want to add an onClick event handler to each banner so that I can use Google Analytics to track those exit links, but I can't get the script to work when adding the onClick; the banners just don't show up on the webpage then. I'm pretty sure that some coding needs to happen in the function area below the content section, that just putting the onClick in each item won't do it, but I don't write this stuff, so I have no clue what to do to make it work right. Here's the script WITH the onClick code I would like to add in red. If you were to remove everything in red, the remaining code would be exactly as it currently appears on my site and works properly. [code]

View 2 Replies View Related

Writing Event Handler In HTML Tag Vs. Via Scripting

Dec 5, 2005

<td onMouseOver="foo(event,this,'string');">something</td>

It works fine i.e. the event handler function foo is fired with the
event parameter containing the event. I do the cross-browser thing to
handle the event parameter
var evt = (evt) ? evt : ((window.event) ? event : null);
and I am all set

But when I try to do the same thing by scripting i.e. get the TD node
via the DOM and add in the event handler like so
var td=document.getElementById('tdid')
td.onmouseover=function() {
foo(event,this,"string");
|

It works in IE, but in Firefox (1.x), I get an error in the JS console
"event is not defined".

Why is this? Any way to get consistent, cross-browser behaviour?

View 3 Replies View Related

Access 'event' In A Handler From In-line Registration

Jun 22, 2007

I have code which is created from a content mamagement system. It places
some handlers on tags with in-line registration:

<tag... onmousedown="mousedownHandler(this);" ...>


I want to modified the handler and access the event. Here's an example of
such (very contrived example):

fucntion mousedownHandler(obj) {
if (!e) e = window.event;
this.style.top = e.clientY +'px'
}

This works in Safari as it knows the event as e and I can get it for M$IE
with the window.event. How do I go about accessing it in Firefox?

View 1 Replies View Related

Evaluation Context Of Event Handler String

Jul 20, 2005

What is the evaluation context of the setTimeout args below? I have a separate Timer instance for each sprite in my program. As coded, "this.Clock" doesn't work.

/*================================================= ===
Timer.js
================================================== ==*/

function Timer(_sprite, _interval) {
var sprite = _sprite;
var interval = _interval;
var isRunning = false;
var timeoutID = false;


this.Clock = function() { // called after setTimout interval
if (isRunning) {
isRunning = sprite.OnClockTick();
if (isRunning)
timeoutID = window.setTimeout("this.Clock()", interval);
else
this.Stop();
}
}


this.Stop = function() {
if (timeoutID) {
window.clearTimeout(timeoutID);
timeoutID = false;
};
isRunning = false;
}


this.SetInterval = function(_interval) {
this.Stop();
interval = _interval;
isRunning = true;
timeoutID = window.setTimeout("this.Clock()",interval);
}


this.Continue = function() {
if (!isRunning) {
isRunning = true;
timeoutID = window.setTimeout("this.Clock()",interval);
}
}
}
--

Don't you see that the whole aim of Newspeak is to narrow the range of thought? In the end we shall make thoughtcrime literally impossible, because there will be no words in which to express it.

View 9 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved