JQuery :: .click() Event Handler And The 'this' Keyword?
Nov 13, 2011
My plan is to create a JavaScript class, with some functions and variables, and one of the functions is called when a user clicks on a certain element. However, I need to find out the ID of the element that was clicked (in the example, that of the <p>) for further processing. It looks basically like the following:
[Code]...
The result was very crazy, because console.log(this) gave me the node as result, and console.log($(this)) did the same only as jQuery node, but trying to find out the attribute via jQuery gave undefined as result. I haven't checked if this.id would work (should probably), but I'd prefer to keep the whole script in jQuery, if possible. I suspect it may be an overusage of the 'this' keyword, but if so, what's the proper way to do it?
View 1 Replies
ADVERTISEMENT
Jun 10, 2009
I use the live - method to bind a handler to a click-event for all links with class "userDiv"
When I DON'T use this and use instead the "normal" click handler
I can still use the middle Mouse-Button in Firefox to open the link in a new tab without any jquery-stuff
But when I use the live-method (and it would be nice to use it) the middle Mouse-Button behaves like the left one.
View 2 Replies
View Related
Feb 24, 2009
So I know all about the caviats of the 'this' keyword when calling object functions from event listeners:
Code:
var foo = {bar: true, zoo: function() { return this.bar; }};
foo.zoo();
> true
a = foo.zoo;
a();
>
And I know that I can get around this by using an anonymous function so that 'this' is preserved in it's original context:
[Code]...
But then someone pointed out this article on memory leaks when using anonymous functions to call object methods because the anonymous function gets access to ALL variables in the enclosing environment and my not be properly disposed of by the garbage collector [URL] So that lead me to think about using a "3rd-person" approach to referencing object properties from within object methods.
[Code]...
View 2 Replies
View Related
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
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
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
Dec 4, 2010
I'm fairly new to JQuery and I'm struggling with something: I'm trying to assign a click handler to a table but it's not working. Here's my [code]...
However, when I click on any of the rows, the handler is never called (at least I see no alerts fired).
I suspect that I could use the newer delegate syntax but I'm currently using version 1.4.1 and would rather not upgrade right now.
Can anyone tell me what I'm doing wrong here.
View 3 Replies
View Related
Jun 9, 2009
I'm trying to change a word in an animated collapsible div script from Dynamic Drive. When clicking "Hide" I want the word to change to "Show". I have part of the script, but it's not working correctly - it just removes "Hide" when clicking on it. See the example here.
The code so far is this:animatedcollapse.ontoggle=function($, divobj, state){ //fires each time a DIV is expanded/contracted
//$: Access to jQuery
//divobj: DOM reference to DIV being expanded/ collapsed. Use "divobj.id" to get its ID
//state: "block" or "none", depending on state
if ($('#'+divobj.id+'-toggle').length==1){ //if toggle link has id 'divid-toggle' defined
if (state=="block")
$('#'+divobj.id+'-toggle').prepend('<span class="prefix">Hide </span>')
else
$('#'+divobj.id+'-toggle').find('span.prefix').remove()
}}
I'm totally new to jQuery.
View 1 Replies
View Related
Dec 6, 2011
I have problem with this code:
jQuery('.container').on('click', '.item a', function(event){
showContent(jQuery(this).attr('href'), event);
});
[code]....
View 1 Replies
View Related
Feb 3, 2011
i'm looking for the best way to use global properties that defined at class level insid event handler functions.
for example :
function MyClass() {
this.v1 = "hello";
this.v2 = {name: 'joe', age:'30'};
this.link1 = $("<a/>", {id: "link1"});
[Code].....
actually, in link1Handler 'this' returns to link1 not to main class. so how to get class properties or functions inside the private functions of the same class?
View 2 Replies
View Related
May 3, 2011
I haven't come across an exampe that would enable me to pass data to my event handler.For example, if I click a button I want it to pass the value of an adjacent text input to my handler.
View 10 Replies
View Related
Mar 21, 2011
I've a very simple code where i am setting the font-size to currect font-size + 2 for a paragraph. Its set first time but when next time event handler is called it gets the same old value.code is ...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
[code]...
View 1 Replies
View Related
Jan 8, 2012
I can't append click event handler at the <a> element when it is created by jquery on that way...
<script type="text/javascript" language="javascript">
$(document).ready(function(e) {
// Abrindo textos na língua padrão do website.
[code]....
View 2 Replies
View Related
Nov 6, 2011
I have a <div> containing 3 buttons. The buttons have id's like this:
Button 1: btnFoo
Button 2: btnBar
Button 3: btnBaz
I'd like to add an click event to each button to call a function named [button ID]_click():
i.e.
btnFoo_click()
btnBar_click()
btnBaz_click()
So far I have this:
$("#divButtons button").each(function() {.
$( this ).bind("click",function(){
eval(($(this)[0].id) + '_click()');
});
});
This works but is there a way without having to use eval and still utilizing the lovely .each function?
View 3 Replies
View Related
Aug 30, 2010
I need to know how to add an event to a button. The specific issue is that I want to add an event which is a prototype function of a class. Consider the following as an example:
MyTestClass = function() {
this.firstName = "Pete";
this.lastName = "Johnson";
[code]....
View 2 Replies
View Related
Feb 5, 2011
In the below code snippet I'm trying to add an dynamic event in <div id="button3"> when you click at button1, which is added static in the html body. button3 has exactly the same behaviour as button1, but the eventhandler will not be activated.
[Code]...
View 1 Replies
View Related
Jan 19, 2011
I'm trying to set up hovering event handler to a bunch of IMG element that I put inside a UL element. (code shown below)
Initially the page loaded with 6 images on first line, and the rest 3 images on the second line.
I notice when I hover on the first image, the image right below it moved to the right. I don't understand why this might happen.
<html>
<head>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
[Code]....
View 2 Replies
View Related
May 18, 2010
I have the following code:
$(document).ready(function(){
$('#link').click(function() {
alert('Clicked!');
$('#content').load('dialogs/load/content', function() {});
});
});
The link is a normal link that is not dynamically created. The alert works. I know the problem is not the Ajax call because this works just fine:
$(document).ready(function(){
$('#content').load('dialogs/load/content', function() {});
$('#link').click(function() {
[Code]....
It only breaks when located inside the click handler. It does not return response headers or a response. Is there something about event handlers and ajax that I'm missing?
View 2 Replies
View Related
Feb 8, 2011
I am looping through an array of objects and creating an <li> element for each one and appending to a <ul> in the DOM. Works fine.During the looping I am also attached a 'details' object as data for the list element:$(thisListItem).data('details',{<obj>});Later, I am using the selector:$('ul#images_list li')to attach an on click function for each <li> element.In the click handler I am reading the data 'details' object for the <li> element:dataDetails = $.data(lotImage,'details');and, using the jAlerts plugin, I am opening a jPrompt which asks for the user to enter a price.
The jPrompt call includes a callback which receives the entered value as a parameter. The callback uses the value to 'post' the updated value, via $.ajax, to a server side unction.After OK is clicked in the jPrompt popup, in Firebug, I get an error that the dataDetails is undefined and it lists the line number in the click handler where I originally read the data object from the <li> element.I don't really understand why it should care after the click event has fired and the jPrompt callback has been invoked
View 3 Replies
View Related
Nov 30, 2011
I am have an MVC app that generates a list of rows, of which one of the columns is a button. Here is the rendered HTML for the buttons:
<input
id
="btnUpdate21"
type
="submit"
value
="Approve"
synchId
="21"
/>
<input
id
="btnUpdate22"
type
="submit"
value
="Approve"
synchId
="22"
/> .....
Following is my selector that I use to bind the buttons to my click event:
<script
type
="text/javascript"
charset
="utf-8"
>
$(document).ready(function
() {
$('input[id^="btnUpdate"]'
).click(promptForSynchDate);
});
I have been trying to access the button Id, though what I really need is the attribute synchId, to use inside of a modal. I have so far been unable to access either one of them. My modal works fine. But the value of either attribute is always "undefined".
Here is my click event handler: (I stuck the alert in there just for debug purposes)
function promptForSynchDate() {
$(document).ready(
function () {
var test1 = $(this).attr('id');
alert(
'test1 is : ' + test1);
$(
'#approve-synch').dialog({ .....
View 2 Replies
View Related
Dec 6, 2011
I have a basic HTML form with a button that submits the form via jQuery's $.post to a processor. That processor returns the identical form, including any errors below any of the elements e.g. input, textarea, etc. The response also has a new submit button to submit the form once more, however, because I'm retrieving a giant string with HTML elements and because jQuery already loaded, that new submit button doesn't do anything. How can I parse jQuery's response for that button and assign a handler so that when the button is pushed, it submits the form again?
View 2 Replies
View Related
May 25, 2010
So I have an event handler for the KeyDown event in a Javascript file but for some reason it does not get called the first time a key is pressed. However, if a key is pressed or a mouse button clicked then the next time I press a key it does get called. Here is the relevant code:
...........................
// Other stuff
$(function()
[code]....
View 2 Replies
View Related
Aug 14, 2010
I'm new at jQuery and probably misunderstanding something fairly fundamental. I have a table that looks like this:
[Code]...
View 4 Replies
View Related
May 14, 2010
I have a TabContainer on my page, and I want to add a keyup handler to the textbox, but somehow I counldn't find the textbox in my jquery function using $('#TabContainer1_TabPanel1_TextBox1'). Here is my code:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script type="text/javascript" src="js/jquery-1.3.2.min.js" >
[Code].....
View 3 Replies
View Related
Jan 28, 2009
Its a very convoluted title, but not sure how to phrase it.I'm using the latest version of jquery. i have a function that creates a new row given an onchange event for the primary select box. This new row contains another drop down box that i want to bind another onchange event. Problem is when the child drop down change event is triggered, if there are multiple children, the alert pops up for the number of children that it has.. horrible explanation heres the code:
Code:
$('#perph_type').change(onSelectChange);
function onSelectChange(){
[code]....
View 3 Replies
View Related
Jun 26, 2010
I have some code that's a more involved version of this:
$('#container_div').delegate('.trigger_button', 'click', function() {
$.post('handler.php',
{ id: $(this).siblings('.item_id').val() },
function(data) {
[Code].....
Normally, when I use .post in an event handler, "this" refers to the object that triggered the event. That doesn't happen in this case. When I use "this" the first time, to pull data parameters, it refers to the .trigger_button. But inside the .post callback, it refers to the AJAX call object instead. I don't think that's how it's supposed to work, is it? Is this a bug?
View 1 Replies
View Related