0

製品詳細ページで時々問題に直面しています: (すべての製品詳細ページ、つまり顧客が製品を購入できる場所から画像をロードする際に問題に直面しています) コンソールに以下のエラーが表示されます

    {
    Failed to load resource: the server responded with a status of 404 (Not Found) 
    Uncaught TypeError: Object [object Object] has no method 'autocomplete' 
    Uncaught TypeError: Object [object Object] has no method 'jCarouselLite' 
    }

助けてください。

私のコードを以下に示します。

---Javascript コード START------

<script src="js/validate.js"></script>
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" />
<script src="js/jcarousellite_1.0.1c4.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function() {
        document.title="<?php echo $product['pd_name']; ?>";
        $(".newsticker-jcarousellite").jCarouselLite({
            vertical: true,
            hoverPause:true,
            visible: 4,
            auto:500,
            speed:1500
        });

        var hh=$(".image_preview_img_text").height();
        if(hh<=300)
        {
            //$("#tag_rt_new").height("");
            $("#tag_rt_new").css("padding-top","300px");
        }

        $("#tag_rt_new").show();
        $(".index_left_nav_new").remove();
    });
</script>
<script src="js/jcarousellite_1.0.1c4.js" type="text/javascript"></script>
<script>
    $(document).ready(function(){
        err_msg_pp();
        $(".cart_tmp_msg_div_pp").css("height","0px");
        $(".cart_tmp_msg_div_pp").css("padding","0px");
        $(".cart_left").find("div").nextAll('br').remove();
        $(".cart_left").find("div div br").remove();
        $(".description ul br").remove()
        $(".description li").css("padding","5px");
        $(".cart_left div div").css("padding-bottom","4px");
        change_image_color( <?php echo $_GET['p'];?>,
            document.getElementById("first_col_name").value,
            document.getElementById("colid").value
        );
    });

</script>
<script type="text/javascript">
var flag=0;
var loader='<img src="admin/images/382.gif" style="padding-left: 
20%;padding-top: 25%;"/>';

- - 終わり - -

4

2 に答える 2

0

一般的なヒント: 1. document.ready 関数を 1 つだけ使用して、セットアップ コードをすべて 1 か所にまとめます。これにより、デバッグが容易になります。2. JavaScript ライブラリを 1 回だけロードします。ブラウザを混乱させる可能性があります。3. 使用するスクリプトの量を制限するようにしてください。

追加したコードを使用して、これにリファクタリングを試すことができます。

<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" />

<script src="js/validate.js" type="text/javascript"></script>
<script src="js/jcarousellite_1.0.1c4.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function(){

        document.title="<?php echo $product['pd_name']; ?>";
        $(".newsticker-jcarousellite").jCarouselLite({
            vertical: true,
            hoverPause:true,
            visible: 4,
            auto:500,
            speed:1500
        });

        var hh=$(".image_preview_img_text").height();
        if(hh<=300)
        {
            //$("#tag_rt_new").height("");
            $("#tag_rt_new").css("padding-top","300px");
        }

        $("#tag_rt_new").show();
        $(".index_left_nav_new").remove();

        err_msg_pp();
        $(".cart_tmp_msg_div_pp").css("height","0px");
        $(".cart_tmp_msg_div_pp").css("padding","0px");
        $(".cart_left").find("div").nextAll('br').remove();
        $(".cart_left").find("div div br").remove();
        $(".description ul br").remove()
        $(".description li").css("padding","5px");
        $(".cart_left div div").css("padding-bottom","4px");
        change_image_color( <?php echo "something";?>,
            document.getElementById("first_col_name").value,
            document.getElementById("colid").value
        );
    });
</script>

「js/jcarousellite_1.0.1c4.js」をロードしようとしている他のコードがある場合は、それを削除してください。$(document).ready 内のコードは、すべての JavaScript が読み込まれた後に実行する必要があります。

于 2014-05-16T20:03:19.677 に答える
0

最後に、私はそれを正しくしました。jquery -1.9.1が異なるページに4回追加されたため、@MatthewWilcoxsonは正しかった。この問題が永続的でなかった理由がわかりません。とにかく、問題はjQueryを複数回含めることであり、同じものを削除することで問題が解決しました。

于 2014-05-20T04:50:10.913 に答える