JQuery :: Addclass Function Only Works With First Of Matched DIVs
Jul 16, 2009
I'm having an annoying issue with addClass(). I'm trying to find all divs with id name '#moldura_slides' and add the class '.horizontal' to each one of them. The problem is that only the first div matched gets the class. The others are just ignored and don't get it.
$(document).ready(function(){
$("#moldura_slides").addClass("horizontal");
});
This is the page: [URL]
I'm building a gallery and i have a couple of thumbnails. There is always 1 active thumbnail (opacity 100%) of the showing image and several inactive thumbnails (opacity 50%).
I've build some functions to catch clicks for those functions:
I tried to use delegate, but it is bounded with events. I don't really want to execute a function on a standard event. But I would need to change the elements that match a selector, when they appear in dom. Is possible to "unhook" delegate from events?like for all existing and new elements with class ".red" to add to the "data" a new key "initiated:true".
I am trying to use the .live() jQuery function in cooperation with the .addClass() function, but I am unsure of how exactly to pass the parameter of the class-to-be-added's name through the live() function to work with addClass().Here is an example of the jQuery I would be using: [code]
I would like to use addClass() in both instances in the code above in cooperation with live() while being able to pass the class's name through the live() function. I've searched around the web quite a bit, but none of my searches have resulted in an answer that fits my specific needs.
I want to change the color on every click of the div, by changing theclass and checking if hasClass. First removeClass, then addClass.But this won't work?Live demo:
http://www.edwinistrator.com/stuff/jquery/ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:// www.w3.org/TR/html4/loose.dtd">
Iam using Raphael and add the same question in their google group too, but they said, its jquery specific. I think, jquery doesnt found my circle. Maybe different id - handling between SVG-specific and plain DOM elements?
I'm a starter in using jQuery and I decided to work my way through the 'Learning JQuery' book from packt.Somewhere in Chapter 5 they use the clone() function with the false attribute. The JQuery version used in the book is 1.1.3a. With the clone(false) method the writer can clone only the matched element and not the descendants. And that works in 1.1.3a.I know that this is no longer the case in JQuery 1.4. Boolean is only for Event Handlers.But what is the new equivalent of this method? In other words. How can I clone an element with only the matched element and not it's descendants?
I know you can use :even or :odd to get the even or odd indexes from a set, or :lt/:gt to filter down the matched set before/beyond the specified index. But what if I want to select every 5th element? And I know it's not nth-child, because that selects everything that is the nth-child of it's parent and not if it is one of the nth elements in the matched set. Is the only way to use .each(function (index) {...}); and then check if the index makes that element one of the nth items?
I have spent the last week trying to figure out how to do the following: User types some text in a text box. The autocomplete queries a php script that returns JSON of matched values. I have got thedrop down list to show these values but I cannot for the life of me get the matched characters to turn bold. For example, if the user types in "rav" and my list contains:
RAVEN RAVE RAVEL
then I want it to appear as
RAVEN RAVE RAVEL
My current JS code is as follows (along with HTML):
I have code to add a row dynamically to a form in my page when an element with class 'addRow' is clicked. The tables (2 tables in one page) that I want to add the row to have class 'tableAddRow'. The tables are contained in a form. But for some strange reason the code only adds to the last matched table in the page. I tried using the $.each selector but nothing works.
Here is the code: $(document).ready(function(){ $(".addRow").click(function(){ $(".tableAddRow tr:last").clone().insertAfter(".tableAddRow tr:last"); $(".tableAddRow tr:last input").val(""); }); });
I am new to jQuery and I am having trouble with the syntax, selectors and refining when trying to create functions. What I am trying to achieve: I have a gallery consisting of a ul with images placed in vertically stacked list items. The ul is in a fixed size wrapper with overflow:hidden so only the first list item displays. The user clicks a button and the first li is hidden using hide(400). This makes the other list items flow up and reveals the second list item within the wrapper window.
When the last list item is visible, the click will show(400) all of the list items again, causing them to flow back into order and only the first item will be showing again. Further clicks will repeat this process from the beginning. I know what I would like to do in terms of code, but I am having trouble with the correct syntax, selectors and refining. I have included the html and description version of the code I was hoping to create. I know the code could be much more efficient by placing functions into variables and testing for true false, but I would like to see the steps with my longer code description for learning purposes. Perhaps afterwards someone can blast it off in two lines.
Each anchor is unique, but the title attribute may match the exact title of one or more images. Where a match is found, either once or more, the title text is copied - once - into the anchor element.
I'm binding a click event to a div so that I can see whether is was the div or some element inside the div that has been clicked. When the if() in my code evaluates to true $(this) is still equal to $("#content") whereas I'd like to have the clicked anchor as matched element. How would I do this?
I know it used to not, but according to the blur() docs page "the domain of the event has been extended to include all element types." Is this true, or do I need to set up an onClick event for the body and check to see if the currentTarget or its parents are the div I'm trying to fire the blur event on?
When I use the load function on my first page (index.html): $('#content').load('page1.html #content'); I got two divs on my page with the same id (id="content"). ... <div id="content"> <div id="content">Content from page1.html</div> </div> ... How do I resolve this issue without a another div?
I'm trying to use the function once which is .load() and fetch my content from there,then after that I'd like to seperate the class's or div's I'll be using such as <div d="test1">This content will show in the external website</div>But I'm having trouble doing that, I've used multiple lines just to load the same page and take small bits of content out and it doesn't work well together as some load's results will be different compared to the others.Heres my code:
I'm trying to get something to work that sounds simple and it worked great until I had a second item to apply it to. This works fine, with one div. When you hover over the link with the class 1slide, it loads the div with the class panel1. The problem is I can't get it to work if I use a second function for .2slide to load the div .panel2. <script type="text/javascript"> jQuery().ready(function(){ jQuery(".1slide").hover(function(){ jQuery(".panel1").slideToggle("slow"); });}); </script>
I've tried multiple variations, including 2 <script> tags with the classes swapped, and combining as shown below <script type="text/javascript"> jQuery().ready(function(){ jQuery(".1slide").hover(function(){ jQuery(".panel1").slideToggle("slow"); }); jQuery(".2slide").hover(function(){ jQuery(".panel2").slideToggle("slow"); }); }); </script>
I think I'm combining these wrong but I've tried multiple different ways. They're classes now but were ID's, and that didn't work either. Figures, I was hesitant about posting hours ago because I knew it might be something simple.. I almost solved everything with this: <script type="text/javascript"> jQuery().ready(function(){ jQuery(".1slide").hover(function(){ jQuery(".panel1").slideToggle("slow"); jQuery(".2slide").hover(function(){ jQuery(".panel2").slideToggle("slow"); jQuery(".3slide").hover(function(){ jQuery(".panel3").slideToggle("slow"); })})})}) </script>
All 4 div's .panel1, .panel2, .panel3 are set to display:none. The only issue now is panel3 is twitchy. I have a feeling it's yet again just a closing bracket issue. Am I writing this correctly? semi-colons anywhere, mess the entire thing up. I am using FireFox 3.5 for reference.
I am not really sure where to start with this as my function works perfect in IE 6. However when I select one of my categories and hit submit in Firefox or IE7 or 8 nothing happens. No error message. Just nothing. How can I get this working for firefox and IE7/8?
[CODE] <script language="JavaScript"> var categories=[]; var categorieslist=[];
I've got this code to work the first time that the user changes the select option: $('select.third, select.fourth').change(function(event){ var id = $(this).siblings('.hidden').text(), token = $('#token').val(); param = $(this).hasClass('third') ? 'isSold' : 'isActive'; value = $(this).val(); $('div#allSheepDisplay').contents().remove().end().load( 'db-interaction/animals.php',{ action: 'update', id: id, token: token, param: param, value: value }, function() { $('select.third').filter(function(){return $(this).val() == '1'; }).css({backgroundColor: 'yellow'}); $('select.fourth').filter(function(){return $(this).val() == '0'; }).css({backgroundColor: 'red'}); }); }); Everything works as I expect - the POST request is made correctly, the database is updated and the display updates correctly. However, if I repeat the same action, selecting a different value, nothing happens until I refresh the page, at which time I can then make the change.
im trying to make a application, im trying to comunicate with the server with the function load, but it doesnt work, also i try with $.ajax, $.get, but nothing works, i have 3 files, html file, php file and javascript with jquery file,here are the php and javascript files:
I have what I think is a strange issue but others may see something I am missing.I am using AJAX functionality to process a php script on a server and then place the output of the script into a div element.Here is the code snippet
Code: function doWork13(typeCode,colorBlockName,objectCategory,imgID){ httpObject = getHTTPObject(); if (httpObject != null) {[code]....
This code shown here works perfectly BUT....I do not want the alert message to be there. When I remove that line of code the script fails to function. There is no error just nothing happens.The function is to replace one image with another and the variable in question is simply the ID tag of the particular image being modified.As I said it works with the alert but does not with out, could it be a timing issue in that the alert gives enough time for the if statement in the setOutput13 function become TRUE
I would like to run this in recursive mode, and I'm starting the function with:
$(function(){ $.bubbles(); }
The problem is, that function works only one (and a half) time. Console shows: start callback start I have not idea what is a problem. Function needs to be run constantly.
I've got a scenario where i've got a list of text names on a page and a rotating gallery of images. Each image relates to one of the names. What i would like to do is highlight the name by adding a css class or id when the related image comes into focus.
I'm sure i can do this by using the rel element to relate to the id of the image (or the other way round!) but i'm not sure exactly how. I presume it's using jquery live and matching with selectors.
I'm working on dynamic list with jQuery. I've appended hundreds of <li> elements with for loop to make very long list. When user scroll down again, remove older ones and append new ones at last of the list. I used$('li:lt(50)').remove() to remove first 5 elements from the list. At first, it works. But, for the second time, it always delete half of '50'. When I enter 100, only 50 elements deleted. How can it be? Could you check the ':lt(n)' selector and remove function? My HTML is very simple. only <UL> <LI> tags in the body. Tested on latest Chrome(ver.13.0.782), jQuery 1.6.2.
There is a line like the following. $(afterButton).removeClass("firstButton").addClass("firstButton"); afterButton element is not null. But this object can not add a new class. Alert to look at the properties by the method of the object is added to a class. Why not work?