OK I figured it out.
There is nothing wrong with my script.
This website is developed in ShopSite. http://shopsite.com/
ShopSite uses templates to build static pages. In order to cross link
and to be able to search ShopSite places anchors all over the HTML.
For some reason for these anchors it duplicates the ids and classes I
put into the template. since JQuery relies on classes and ids of DOM
elements we get a conflict there.
Safari, Firefox are smart enough to deal with the conflict. IE6 and
IE7 mess up.
L.
On Dec 5, 2008, at 10:12 AM, luke adamis wrote:
test page:
http://kitchenshop.ebeacon.net/catalog/
thanks,
luke
On Dec 4, 2008, at 6:29 PM, Michael Geary wrote:
It doesn't seem to work for me in Firefox either.
For some reason, $('.promotion_content').length evaluates to 0.
Oh! I get it. I'm missing the HTML code!
Sorry, just kidding around with you. :-)
But seriously, it's pretty hard to guess what might be wrong
without a test
page to look at.
The one thing I can suggest from looking at the JS code alone is that
there's a big chunk of duplicate code that could be removed.
That's unlikely
to be related to the IE problem, though. So put up a test page and
someone
can probably give you some ideas.
-Mike
From: luke adamis
Why isn't tis working in IE?
$(document).ready(function(){
//tabber
var e = $('.promotion_content').length;
var n = Math.floor(Math.random()*e);
$('#promotion_holder > .promotion_content').hide();
$('#promotion_holder > .promotion_content:eq('+n+')').show();
$('#promotion_holder > #promotion_navigation > ul > li
a:eq('+n
+')').addClass('selected');
$('#promotion_holder > #promotion_navigation > #next >
a').click (function () {
if (n == e-1) { n = 0; } else { n = n+1; }
$('#promotion_holder > .promotion_content').hide();
$('#promotion_holder > #promotion_navigation >
ul > li > a').removeClass('selected');
$('#promotion_holder >
.promotion_content:eq('+n+')').fadeIn('slow');
$('#promotion_holder > #promotion_navigation >
ul > li > a:eq('+n
+')').addClass('selected');
return false;
});
$('#promotion_holder > #promotion_navigation >
#previous > a').click (function () {
if (n == 0) { n = e-1; } else { n = n-1; }
$('#promotion_holder > .promotion_content').hide();
$('#promotion_holder > #promotion_navigation >
ul > li > a').removeClass('selected');
$('#promotion_holder >
.promotion_content:eq('+n+')').fadeIn('slow');
$('#promotion_holder > #promotion_navigation >
ul > li > a:eq('+n
+')').addClass('selected');
return false;
});
var tab_content = $('#promotion_holder > .promotion_content');
$('#promotion_holder > #promotion_navigation > ul > li
a').click (function () {
tab_content.hide().filter(this.hash).fadeIn('slow');
$('#promotion_holder > #promotion_navigation >
ul > li > a').removeClass('selected');
$(this).addClass('selected');
n = $(this).attr('name') - 1;
return false;
}).filter(':first').hover();
});
--------
both the random selection and the clicking on the next
previous buttons are messed up in IE6, IE7. if I set var e =
$ ('.promotion_content').length; to a fixed number, the
script works.
but I need to count the elements somehow first.
thanks,
luke