I am trying to re-write a script that I found on w3schools. The script should check whether ALT key was pressed or not. My objective is not to use any inline scripts and to refer to the event within a function. My script is not working.
<code>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">[code].......
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?
I work in a team of developers and our pages are dynamically created using Java.I can at any moment change the inline JS across a site due to this so changes are easier then if the site was just static HTML.As far as reasons to use dom 2 over inline, I looking for something beyond:
it separates behavior from html
it is a best practice
it is the 'modern' way of doing it
I need facts that explain why it is a best practice or why 'modern' is better like : you can only assign one function action to the event.That was just an example which I see but is not true to me.I can either assign multiple functions to it like:
and then have a function defined before the inline call like
Code JavaScript: function myMultiFunctionCall() {[code].....
Here the second statement overwrites the first.By the way, here is a con for using dom and to me a big one considering debugging: you can't see what event handlers are assigned to what unlike inline where it is obvious because it is in the page. see http:[url].......
I've been teaching myself javascript and I'm a bit confused about the whole events business. I've been reading the Sitepoint book (among a bunch of others) and when it gets to Ch 4 things get down right confusing. They claim that inline event handlers are "so 1998", something I've heard before and then they proceed to write some pretty complex library files to get around the fact that IE <= 7 doesn't support much of the alternative ways of handling events--a familiar enough story. Anyhow, it seems that many many tutorials all over the internet (and countless pages) resort to inline event handlers as the standard. So, I'm confused. I obviously need to know inline event handlers if I intend to work as a web developer even though it's so 1998. Obviously inline even handlers are not quite on par with inline font attributes and transparent gif files despite the language one often hears. Can someone set me straight, and if possible suggest a brilliant tutorial, book chapter, or website that lays everything crystal clear for me?
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.
edited: the first alert has this in the brackets: &l t; i.e. the html code for < but for some reason this foum converts it. and i thought html was off?
I was expecting the above to alert the text in the brackets exactly as written in the code for both divs. However both events alert '<'. Why is that? I want to be able to pass '<' as an agrument to events without being converted, because that is what is happening. How may I prevent it?
I have a function that sets a value of this.name. If I call a function of that function (is there a better term for that?), I can get the value of that name with this.name. However, if I save that function's function as a variable, and THEN call it, this.name is undefined.
I don't think my vocabulary is clear enough, so here's my example: function Ninja(name){ this._name = name; this.getName = function(){ return "ninja "+this._name }}
sam = new Ninja("sam"); assert( sam.getName() == "ninja sam", "Ninja's name is ninja sam" ); sam2 = new Ninja("sam2"); sam2getName = sam2.getName; assert( sam2getName() == "ninja sam2", "Ninja 2's name is ninja sam2" ); //fails log("Ninja 2's name is actually "+sam2getName()) // actually "ninja undefined"
(Note: Use of "ninja" and assertions are because I was playing with the code in John Resig's java runner thingie: [URL]). The reason I want to be able to refer to a function by a variable is because I want to pass the function to something else that requires a function to be passed in, such as an ajax callback or something. Anyway... why is this.name undefined in the second example?
I have a regular html page called a.html this page opens a modal dialog window called modal1.html modal1.html contains a 'Next' button. when the button is pressed the modal1.html is replaced with modal2.html
modal2.html contains another button. when its button is pressed, the modal dialog window should close and the location of the original page a.html should change. I am trying to do something like:
I attach a mouseover event to a ul. Within the function I can use $(this) or this to refer to the ul.How can I refer to the li element over which the mouse is? And therefore make use of event delegation in jQuery.
function JGallery(){ this.name="defaultGallery"; this.images=[{//some JSON here}] this.render=function(){
[Code].....
I've tried to debug it in firebug, but I guess there is a problem with the scope of the 'this'. The 'this' in
//i want append div with id of the name property of jgallery class $("<div></div>").appendTo("#container").attr("id",this.name); seems to refer to the iterator in the $.each().
I've tried to do this.this.name but it still doesn't work. Is there any way to allow me access the property of the Jgallery class?
I am creating an application that uses as much Object Oriented code as I could (mostly to learn it).
I have an object called 'photo' that contains two Image() objects 'fullImage' and 'thumbnail'. All is fine and dandy, I can read the thumbnail and the full image, and their associated properties just fine.
But what I can't seem to do is make the thumbnail's onclick event refer to one of the object's methods.
Here is a greatly simplified version of the object's code.
Code:
So, the thumbnails div gets populated with the thumbnails fine. But for the life of me, I cannot figure out how to make the onclick call the photo object's "editPhoto" method.
Will the way that I am creating the objects using the same name for each one, result in only the last one created being accessible. If so, do I need to create an array of objects so I can uniquely identify each one?
I'm passing the id of a div as a parameter. I'm not sure how to refer to it with Jquery. The following does not work: Code: function updatemail(param1, param2) { $("#param2").animate({ opacity: "show" }, 300); } I also tried $(param2) but it did not work.
I am calling the JS function GenRWType which is carrying the name of the dropdown.....the issue is how do I get the value of the selected option from dropdown ? This is the code I have and it does not recognize "rname"
I'm using getJSON to retrieve information from a header record and the corresponding detail records and display the detail records in a table. The PHP script that is called returns a JSON string (via json_encode) that looks like this:
Here is the html table: <table><thead><tr> <th colspan="2" >Item Description</th> <th>Quantity</th> <th>U/M</th> <th>Item Price</th> <th>Item Amount</th> </tr></thead><tbody> <tr class="p_row_1"> .....
And here is the $.getJSON: $.getJSON("GET_INV_INFO.php",{srn:'<?php echo $srn; ?>'},function(s){ // Get Header Info $('#ip_invNo').html(s.jobNo); $('#ip_invDate').html(s.invDate); $('#ip_custNo').html(s.custNo); $('#ip_purchOrd').html(s.purchOrd); $('#ip_custName').html(s.custName); .....
My problem comes in the getJSON section where I'm trying to populate the table with a record. I don't know how to refer to the different fields in array 's'. I've tried the following and many variations, but to no avail: $('.p_row_'+i+':nth-child(1)').html(s.row.i.itemNo); $('.p_row_'+i+':nth-child(1)').html(s.row[i].itemNo); How do I refer to a nested field in a multidimensional array like this?
i am very new to VB and right now given a task to delete specific folder from the folder tree. i am able to delete the folder from the first sub folders. but i have to look in every folder for that specific name of folder and delete that.
that is i have a folder Z and want to delete folder x in the folder tree after z
Z a1 d2 f3 g4 x5 x2 e2 h3 x4 x3 x2 b1
c1
so the task is to find all the folder with name x and delete them.
I've a personal application I would like to script, that would bring up a particular web page (which happens to have a Flash application on it), then every 15 minutes or so generate the equivalent of clicking on a button (causing the application to retrieve and display the latest info).
Anyone know of any articles or howtos on the web for writing such an application? Code:
I'm working on a project using JQuery and Keith Woods' extension to provide SVG functionality. My final goal is to develop some kind of HMI/SCADA implementation. My intention is to have an svg graphic representing some kind of process and then change certain shapes parameters from scripting part.
I'm pretty new to Javascript, JQuery and so on. But I'm trying to make my way by reading a lot on internet. However I couldn't find a clue about my most recent issue.
Mi idea is to embed and svg file created before on Inkspace. This would be the skeleton of the process I want to represent. Then, from the html document where this svg file is embedded, I want to alter certain parameters of the shapes inside, for instance I want to change the colour of a particular rectangle.
So, I embed the file in the html document like this:
I am remote scripting using javascript to an XML gateway, the XML file I get back changes state i.e. either the car registration number exists (and it includes certain fields in the XML) or it doesn't exist (and it doesn't include certain fields).
When my code tries to display the result I am getting the 'object required' error because I am trying to access an xml element which doesn't exist.
For example this line would break if the plate didnt exist but work perfectly if it did:
var fuel = response.getElementsByTagName('Fuel')[0].firstChild.data;
Is there anyway to stop it throwing an error if it doesn't exist and just set a regDoesntExist flag or something?
I'm a greenhorn in SVG and javascripting but I'm learning by doing. So, here my current problem question :
I have a svg document embedded in another svg document. I whant, through functions in an external javascript file, manipulate objects in either the child svg document or the parent document. How do I get access to elements of the other document ?
Example : I have a document "A" containing X/Y - Axis and included another svg document "B" with the graphs.
I whant now, as soon as the mouse cursor is over a graph in document "B" the belonging lable which is located in the parent svg document "A" to change color or size.
Or I whant the graph in "B" to start blinking as soon as the mouse is over the lable in "A".
I don't know how cross document borders.
Can anyone give me a short exapmle to get me going?