JQuery :: IE Does Not Re-render After .addClass()?
Oct 19, 2010
I have a strange problem that occurs in IE 7 and 8 and does not occur in Firefox or Safari.I'm dynamically adding class to a table row on a checkbox selection. A row contains some input fields that get enabled or disabled. If a row is enabled, it gets highlighted using selectedrow class. If it gets disabled, the class is removed:
I've recently started playing around with jQuery and the jquery-tmpl plugin. I've been fairly impressed with how easy it has been to get my sample apps to call a web service and populate the returned data using a template on my page using something like...
var rendered = $.tmpl("myNamedTemplate", data); $("#resultList").html(rendered);
What I'm currently having trouble understanding is how to get the html results of rendering a template into a string so I can use it with other APIs. I'm working with the Bing AJAX map control and various functions in it's API take HTML as a string parameter.
What I tried first...
var myHtmlTitle = $.tmpl("myTitleTemplate", data); pin.SetTitle(myHtmlTitle);
That didn't quite work like I expected and resulted in an exception from the BING map control. I quickly figured out that what .tmpl was returning was not a formatted HTML string, so it makes sense that would fail.
I then tried appending .html to things and I got close...
var myHtmlTitle = $.tmpl("myTitleTemplate", data).html(); pin.SetTitle(myHtmlTitle);
This did in fact return an HTML string, but the problem is it was stripping off the top-level tag in my template. It's acting like it's returning innerHTML of the top-level tag.
Is there an easy way to simply render the template to a string so I can pass that into the APIs?.
I am loading a list of answers give by a specific user into a tab panel. To do this I'm using the following code: $('#questionBody').load('dashboard/questions'); All the html elements not from a loop such as a header image show up fine but the list of answers looks like it's displayed similar to when you use print_r() on an array. Is load() the proper function to use here?
here's an example of the output: {"status":200,"data":{"questions":[],"params":{"page":false},"user_answers":{"13":{"flagged":"0","regdate":"1282869034","id":"13","qid":"9","body":"an answer of course...","payed":"1","question":{"id":"9","title":"test","body":"test","uid":"1586","permalink":"/question/view/9"},"status":"complete"},"11":
i am wondering, what is the best way to render HTML on a page using an ajax request that gets the data as an XML file?
Say for example you wanted to load the comments on a particular news post, and wanted to pull this data in via ajax, and you server returns an xml with the commens in it, for example:
[Code]...
and then take that xml file and use it to render a list of comments, with profile pictures (worked out from the `profile_id`). I ask as i can do this easy enough by just making the server return the output as HTML, then placing it inside a container for the comments, but this is slower as the html output would be much bigger in size then the xml output.
I also need the ability to add a callback function so i can make a popup display if there is an error, or run a function that does something after the data is loaded. Ideal'y id like to load the html template which i would use along side the xml file, via ajax, but this isnt completely neceserry.
Is there a javascript or jQuery method available to force the browser to render the contents of the window? This would something similar to updating the "stage" in Director or Flash.I have a two-column interaction set up where users input information in one column and see their results in another. Safari, Firefox, etc all work perfectly. IE however needs an extra click anywhere on the browser window for the results to appear. So I'm looking for a way to attach a function to a UI control that 'forces' IE to render the screen so the changes appear.
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?
that is IE the div #msgsp is not hidden and when focus on the input box #eventname the background color aint changed are there special methods/syntax for IE? are these methods intended to work in IE?
I want to add a 'visited' class to a table cell and all of it's siblings if the link in the first td has been visited.
Here is my markup.
I've tried his:
And this:
And the class only gets added/appended to the table cells in FF, not webkit or IE and firebug tells me that the css is fine and would be applied if the class were present.
$('body').append('<div id="mydiv"></div>).addClass('newClass');addClass can be used to add a class to a selector. Take the above example. If the class is added to 'mydiv' instead, not body, this could be handy than writing the two lines:$('body').append('<div id="mydiv"></div>);$('#mydiv').addClass('newClass');
The problem: The addClass does not affect the styling of #title. Firebug shows .error, but as an empty selector. And, BTW, is this an appropriate way to flag errors -- by adding or removing a class?
I'm trying to write a cinema seat selection page and I'm hitting a problem with a selector not recognising a 'booked' class that I've just been added via JSON. I wonder if anyone could tell me why it works ok when I hard code the 'booked' class in but not when I do it through jQuery. Should I just do it in PHP??? or is there a way around the problem.
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 add a class to a navigation button, based on the position of my sliding <ul>.
The addClass("not-active") works when the page first loads, but when the <div class="button next"> is clicked, the position changes, and so I want the evaluation of the if statement to change (and thus trigger the addClass("active"). That's not happening. (I realize this would give me both the active and not-active classes -- I'll deal with removeClass later.
I have the usual unordered list for a navigation menu with submenus...
html:
<ul> <li><a href="#">Link 1</a></li> <li>
[code].....
All of the links inside of the parent <li> have a border radius. But if the parent <li> has a child <ul>, I don't want the link to have a radius.I'm currently using this jQuery:
When addClass('choose') to li, there is always a white space right under it. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[URl]"> <html xmlns="[URL]"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <script type="text/javascript" src="demo_inc/jQuery.js"></script> .....
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:
IE8 not knowing how to handle last-child css I am using this globalworkaround, of course with an extra IE css $(document).ready(function() { $("#footer ul li:last-child").addClass("ielast");});