Stan Marsh
Stan Marsh

Reputation: 63

Jquery & Joomla malfunction without reason

I am trying to make a nice slidebox to first rate the article and then close the ratingbox to view the video. I am doing this on Joomla and using this code a little edited: http://jsfiddle.net/AetnV/72/

This is my version of the code: (The problem is on static html pages (non joomla) it works perfect, but not on Joomla I have disabled on the javascript and iframe blacklisting from JCE and global configuration but still nothing, I tried it also with other themes its same.

  <script type='text/javascript' src='http://code.jquery.com/jquery-1.5.2.js'></script>

  <link rel="stylesheet" type="text/css" href="/css/normalize.css">
  <link rel="stylesheet" type="text/css" href="/css/result-light.css">

  <style type='text/css'>
    * { margin: 0; padding: 0; outline: none; }

body { background: #CCC; margin: 0; padding: 0; font: 10px normal Arial, Helvetica, sans-serif; }

/*--Main Image Area--*/
.main_image {
    margin: 20px 0 0 20px; width: 650px; height: 400px;
    float: left;  background: white; position: relative;  overflow: hidden;
    color: #fff;

    moz-box-shadow: 0px 0px 4px #666; 
    -webkit-box-shadow: 0px 0px 4px #666; 
    box-shadow: 0px 0px 4px #666;
}

.main_image h2 { font-size: 2em; font-weight: normal; margin: 0 0 5px; padding: 10px; }
.main_image p  { font-size: 1.2em; padding: 10px; margin: 0; line-height: 1.6em; }
.main_image .desc  { position: absolute; bottom: 0; left: 0; width: 100%; display: none;}
.main_image .block { height: 410px; width: 100%; background: #111; border-top: 1px solid #000; }
.main_image a.collapse {
    background: black; height: 30px; width: 650px;
    position: absolute; top: -30px; right: 0px;
    font: normal 12px arial; color: white; text-align: center;
}
.main_image a.show { background-position: left bottom; } 
  </style>



<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){
$(document).ready(function() {

    //Show Banner
    $(".main_image .desc").show(); //Show Banner
    $(".main_image .block").animate({ opacity: 1 }, 1 ); //Set Opacity


    //Toggle Teaser
    $("a.collapse").click(function(){
        $(this).next().slideToggle();
        $(this).toggleClass("show");
    });


});//Close Function  
});//]]>  

</script>


  <div class="main_image">
<br><br><br><br><br><br>
<center><img src="http://upload.macromedia.com/exchange/flash/previews/300x200_200x200.jpg" width=205" height="205"></a></center>
    <div class="desc" style="display: block; ">
        <a href="#" class="collapse show">Click Me!</a>
        <div class="block" style="opacity: 1; display: none; ">

            <center><br><br><br><iframe width="420" height="315" src="http://www.youtube.com/embed/AxcM3nCsglA" frameborder="0" allowfullscreen></iframe></iframe>
            </center>
        </div>
    </div>
</div>

Any help is greatly appreciated. Thank you

*Also if you have a better way to suggest to do what I am trying to do please tell me. Its my first attempt I was thinking to make it 2divs and onclick one would overlap the other but I am afraid of spiders thinkings its hidden text etc..

Upvotes: 3

Views: 359

Answers (2)

Lodder
Lodder

Reputation: 19733

Try using the following:

$document = JFactory::getDocument(); 
$js = ' $(document).ready(function() {

            $(".main_image .desc").show();
            $(".main_image .block").animate({ opacity: 0.85 }, 1 );

            $("a.collapse").click(function(){
                $(this).next().slideToggle();
                $(this).toggleClass("show");
            });

         }); ';
$document->addScriptDeclaration($js);

If $document = JFactory::getDocument(); is already being used, remove it.

If $doc = JFactory::getDocument(); is being used, then in the code above, change to this:

$doc->addScriptDeclaration($js);

Upvotes: 1

Irfan
Irfan

Reputation: 7059

Instead of this code-

<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){
$(document).ready(function() {

    //Show Banner
    $(".main_image .desc").show(); //Show Banner
    $(".main_image .block").animate({ opacity: 1 }, 1 ); //Set Opacity


    //Toggle Teaser
    $("a.collapse").click(function(){
        $(this).next().slideToggle();
        $(this).toggleClass("show");
    });


});//Close Function  
});//]]>  

</script>

Try this-

<script type='text/javascript'>//<![CDATA[ 
var $j = jQuery.noConflict();
$(window).load(function(){

});//]]>  
$j(document).ready(function() {

    //Show Banner
    $j(".main_image .desc").show(); //Show Banner
    $j(".main_image .block").animate({ opacity: 1 }, 1 ); //Set Opacity


    //Toggle Teaser
    $j("a.collapse").click(function(){
        $j(this).next().slideToggle();
        $j(this).toggleClass("show");
    });


});//Close Function  
</script>

Upvotes: 0

Related Questions