Question

I've got two Jquery functions that I can get to work fine alone on the page, but not when I have them both in at the same time. I'm unable to see what I might be doing wrong as I've got similar code working well on other pages.

First function:

$(document).ready(function()
{
   $("#add-questions").click(function() {$("#extra-questions").fadeIn(800);});
});

Second function:

$(document).ready(function()
{
   if($PHPTRIGGER == true)
   {
      $("#pop-text").html("Message sent.");
      $("#pop").show();
      setTimeout(function() {$("#pop").animate( {height: "hide", opacity: "hide"}, "medium");}, 4000);
   }
});

The "$PHPTRIGGER" is a php variable I'm passing to Jquery (StackOverflow doesn't allow me to put in real php so I've marked it like that).

I've tried putting both functions inside the same "document-ready", tried swapping order, but they just don't work together.

Any thoughts?

Thanks.

UPDATE:

It's the first function that fails to respond to the click event. It only works after the second function has been performed (which is linked to a form submission). Still wondering why this is so.

FINAL UPDATE:

Resolved the problem with Firebug. Had to initialise the PHPTRIGGER passed via PHP with a blank value or the first function fails. It's kind of funny actually because that function doesn't take in any PHP. Basically, a (strict) syntax error in the second function caused the first function to fail, while the second function itself was working fine.

Was it helpful?

Solution

They work for me when I put them into a test page:

  • pop hides after 4 seconds.

  • pop-text reads "Message sent."

  • When I click #add-questions, the #extra-questions div fades in (assuming an initial display:none)

If you wanted something other than that, you probably just went bleary-eyed looking at your own code (maybe you wanted #pop in both places instead of #pop in one and #pop-text in another?)

Other things you might try: run in Chrome and check the JS console for errors (in case your current debugger isn't showing you an error and execution is merely halting). Check your HTML to make sure the referenced ids do exist. Check your CSS to ensure your initial values are correct. Make sure your $PHPTRIGGER variable is getting passed correctly.

Let us know if you have more information or find anything out.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top