0

Hey guys just a quick question, my AJAX is working in FF and Opera just fine, As in it repeats the function whenever the button is clicked, but in IE the first click works, but then it doesn't repeat...

I've been searching around form some fixes, and found quite a lot but none of it seems to work [as you can see i've tried adding '.live' but still nothing], wondered if it was obvious to anyone what was wrong here?

Heres' the code:

<script type="text/javascript">
                        $(document).ready(function(){

                               $('#generate-quote').live('click', function(e) {
                                
                                        e.preventDefault();
                                        
                                        $.getJSON("generator.php?", {act: 'char_con'}, function(data){

                                                $(".quote").html(data);
                                        });
                                        
                                });    
                                
                        });	
</script>

This is currently at the top of my index.php, but the button to run this function is echoed by php which I feel may have something to do with it? I'm not sure?

Thank help appreciated,

ello.

Edited by ello: n/a

3
Contributors
9
Replies
10
Views
6 Years
Discussion Span
Last Post by McLaren
0
"generator.php?"

What the ? char is for? Maybe there is a problem?

That's there because whenever you call a php function the url reads 'www.website.com?act=something' I assumed you'd need to place the '?' there, but I've just tried it without it, it does work, but still the same problem persists.

Thanks for the reply though, but sadly no luck.

Edited by ello: n/a

0

Ello,

I would have to guess that the function is working fine but there's no variation in behaviour each time your "#generate-quote" element(s) are clicked.

  • The url is always "generator.php"
  • The data is aways {act: 'char_con'}
  • The callback function always sticks the response into ".quote" element(s).

Unless something else affects the response generated by "generator.php, or the elements matching ".quote" differ, then each time your $.getJSON... runs, it will do exactly the same thing; you will see change(s) to the UI only on first click.

Airshow

Edited by Airshow: n/a

0

@Airshow

Thanks for the info, the 'generator.php' displays random quotes, so every time the function is run it is in fact random, but I understand what your saying. I'll have another fiddle around with it to see if I can get it working :)

@SPeed_FANat1c

I'm not too sure, this is the only method I've tried so far, and it does work for the most part but I'm really not sure of the other methods are available in this instance.

Thanks for the info guys, I'll try and figure it out and post back, if I know the codes fine I should be o.k finding a work around :)

Thanks,

pippin.

1

Ello,

Aha, that explains your code.

You might like to consider trying jQuery.ajax(...) which would allow explicit use of cache:false to ensure caching isn't an issue.

According to the jQuery API, the following is equivalent to getJason(...) :

$.ajax({
  url: url,
  cache: false, //added by me
  dataType: 'json',
  data: data,
  success: callback
});

Airshow

0

Ello,

Aha, that explains your code.

You might like to consider trying jQuery.ajax(...) which would allow explicit use of cache:false to ensure caching isn't an issue.

According to the jQuery API, the following is equivalent to getJason(...) :

$.ajax({
  url: url,
  cache: false, //added by me
  dataType: 'json',
  data: data,
  success: callback
});

Airshow

Aaa perfect! Thankyou worked great :)

Appreciate the help Airshow,

+1 for your efforts :)

0

yeah, that stupid IE likes to cache data when we don't need to, I had problems also with that earlier. For that reason I always try to use post method for data sending to avoid problems with IE.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.