web-dev-qa-db-ja.com

jqueryマーキースクリプトがjoomlaで機能しない?

スクロールし続けるコンテンツdivをマーキー化したい。モジュールを作成してから、次のURLからjQueryを追加しました: https://github.com/aamirafridi/jQuery 。このコードはローカルサーバーでは正常に機能していますが、私のJoomlaサイトでは機能していません。わたしの default.php

<?php 
defined('_JEXEC') or die('Restricted Access');
$document = JFactory::getDocument();
$document->addStyleSheet('modules/mod_Marquee/css/style.css');
$document->addScript('modules/mod_Marquee/js/jquery-2.1.1.min.js');
$document->addScript('modules/mod_Marquee/js/jquery.Marquee.min.js');
$document->addScript('modules/mod_Marquee/js/script.js');?>
<div class="row-fluid">
    <div class="span12">
        <div class="row-fluid" data-duration='5000' data-gap='10' data-dupilcated='true'>
            <div class="row Marquee">
            <div class="span3" align="center">level 2 column and ger more variables</div>
            <div class="span3" align="center">level 2 column</div>
            <div class="span3" align="center">level 2 column</div>
            <div class="span3" align="center">level 2 column</div>
            </div>
        </div>
    </div>
</div>

私のscript.jsは: enter image description here

2
reegan29

まず最初に:

誰かがフォークした非公式のjQueryライブラリをインポートしないでください!

これで、スクリプトをインポートするときは、常にJUri::root()を使用してサイトのルートを定義する必要があります。 JoomlaのJHtmlメソッドも使用する必要があります。だからこれを交換してください:

$document->addStyleSheet('modules/mod_Marquee/css/style.css');
$document->addScript('modules/mod_Marquee/js/jquery-2.1.1.min.js');
$document->addScript('modules/mod_Marquee/js/jquery.Marquee.min.js');
$document->addScript('modules/mod_Marquee/js/script.js');

これとともに:

JHtml::_('stylesheet', JUri::root() . 'modules/mod_Marquee/css/style.css');
JHtml::_('script', 'http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js');
JHtml::_('script', JUri::root() . 'modules/mod_Marquee/js/jquery.Marquee.min.js');
JHtml::_('script', JUri::root() . 'modules/mod_Marquee/js/script.js');

私のJoomlaを見て、どのバージョンのJoomlaを使用しているかわからない jQueryを適切にインポートするには、別の質問に答えてください

スクリプトについては、代わりにこれを最初に使用してみてください。

jQuery(window).on('load', function($) {

さもなければ使用してみてください:

jQuery(document).ready(function($) {
2
Lodder