Why a SlideShow (made using JQuery FlexSlider) can’t work if I load it form functions.php but work if I load it from my footer.php file? [closed]

As @Milo said , WP loads jQuery in no conflict mode so shortcut $ is not available for jQuery to use .You should not use the $ variable for jQuery within WordPress.As you said you are not into jQuery i’m just giving the code below..Try it.

jQuery(function ($) {
        $(window).load(function() { 
              $('#main-slider').flexslider({
                 animation: "slide",
                 useCSS: false, 
                 pauseOnHover: true 
                }); 
          });

    })

When you put script in the footer.php , you loaded jQuery from cdn .so $ is available and that’s why it worked.

Update:
What i mean is when you used

<script src="http://code.jquery.com/jquery.js"></script>

your source for jQuery.js is different that WP.

When you use

  // Load JQuery:
    wp_enqueue_script('jquery');

jQuery is loaded from WP bundle.