2012-03-06 15 views
0

私はfancyboxとjqueryuiのアコーディオンを自分のサイトに実装しようとしていますが、fancyboxを起動することはできません。私は、関数を正しく呼び出すことはかなり確信していますが、それは実行されません!私は、スクリプトを宣言するのはここjQueryが実行されません

は次のとおりです。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
<script type="text/javascript" src="scripts/fancybox/jquery.fancybox-1.3.4.pack.js"></script> 

CSS

<link href="scripts/fancybox/jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" /> 
<link href="scripts/fancybox/style.css" rel="stylesheet" type="text/css" /> 

機能:

<script type="text/javascript"> 
//Accordion Code 
var ContentHeight = 480; 
var TimeToSlide = 250.0; 

var openAccordion = ''; 

function runScripts() 
{ 
runAccordion(1); 
logosize(); 
fancybox(); 
} 
function fancybox() 
{ 
    $(".fbox").fancybox({ 
      height:390, 
      width:900 
      }) 
} 

function runAccordion(index) 
{ 
    var nID = "Accordion" + index + "Content"; 
    if(openAccordion == nID) 
    nID = ''; 

    setTimeout("animate(" + new Date().getTime() + "," + TimeToSlide + ",'" 
     + openAccordion + "','" + nID + "')", 33); 

    openAccordion = nID; 
} 
//Logo Code 
function logosize() 
{ 
var logoID = document.getElementById('logo'); 
if (screen.width<=1152) 
{ 
    document.images["logo"].width = 175; 
    document.images["logo"].height = 175; 
    document.getElementById('AccordionWrapper').style.marginTop = '0px';  
} 
} 
//End 
</script> 

とコール:

<a class="fbox" href="about.html">This goes to iframe</a> 

ペーストビンはすべてここにあります:http://pastebin.com/eSQM6aX1

何か助けが素晴らしいでしょう!ありがとう...

+0

は、ドキュメントの準備ができた後に実行runScriptsですか? –

+0

Charlie

+0

jQueryを使用するときに 'onload'は必要ありません。単に 'document.ready'関数を使用してください。下の私の答えを見てください。(あなたもjQueryを使用するときに_any_インラインJavaScriptは必要ありません) – Sparky

答えて

1

あなた自身の中でfancybox機能を実行しようとしています。 fancybox()関数と同じ名前の新しい関数を定義することはできません。

function runScripts() { 
    runAccordion(1); 
    logosize(); 
    fancybox(); // <--- the plugin is already using this function name 
} 

function fancybox() { 
    $(".fbox").fancybox({ 
      height:390, 
      width:900 
    }) 
} 

だからあなたはだけ...

function runScripts() { 
    runAccordion(1); 
    logosize(); 
    Myfancybox(); 
} 

function Myfancybox() { 
    $(".fbox").fancybox({ 
      height:390, 
      width:900 
    }); 
} 

しかし、あなたが本当にそれがdocument.ready関数内にすべてを置く行うために必要なすべてを...その名前を変更でき

$(document).ready(function() { 

    runAccordion(1); 
    logosize(); 

    $(".fbox").fancybox({ 
      height:390, 
      width:900 
    }); 

}); 

ドキュメントが読み込まれたときに起動したいものは、そこに配置することもできます。これにより、runScripts()初期化スクリプトが不要になります。そして、jQueryはbody onloadと他のすべてのインラインJavaScriptの必要性を排除します。 OPのページを見た後


編集:

http://www.semaphoredesign.com/web-devel/joker/test2.html

ページでのみエラー。 SafariやChromeのFirebugや開発者ツールでこれを見たはずです。

TypeError: Result of expression '$(document).ready' [undefined] is not a function.

これは、jQueryが正しく読み込まれていないことを意味します。 prototype.jsがjQueryと競合していると思われます。

私が以前に提案したようにprototypeを削除して、動作しているかどうかを確認してください。

hereの指示に従って、prototypeのような他のライブラリでjQueryを使用する方法を正確に説明してください。スクリプトのロード順序が重要であることに注意してください...

http://api.jquery.com/jQuery.noConflict/

+0

私はこれらのことを試してみましたが、どちらも失敗しました。 – Charlie

+0

エラーがありますか?干渉する可能性のある他のスクリプト? –

+0

エラーは発生しませんでしたが、ファイヤーバグで実行しようとしましたが、それを使用するのが最善ではありません。私は本当にそれを得ることはできません、私はそれをアップロードすることができます(両方のバージョン)場合は、見て喜んでですか? – Charlie