簡體   English   中英

jQuery-數組上的語法錯誤

[英]jquery - syntax error on array

想知道是否有人可以告訴我這是怎么回事:

function cat_autocomplete(){
    var categoryTags = ["boots>black","boots>brown>boys>blue","clothes>small_men>scarfs>blue","boots","boots>brown>boys","boots>brown","ties>casual","clothes","coats","clothes>girls","boots>brown>girls","clothes>small_men>hats","jackets","clothes>mens","clothes>red","boots>brown>red","clothes>small_men>scarfs","shoes","clothes>small_men","ties>smart","ties","clothes>womens"];
    $( "input[name=category]" ).autocomplete({
        source: categoryTags
    });
} 

螢火蟲的錯誤與categoryTags ...我看不到任何錯誤。

編輯:完整代碼

    <script type="text/javascript">
function cat_autocomplete(){
    var categoryTags = ["boots>black","boots>brown>boys>blue","clothes>small_men>scarfs>blue","boots","boots>brown>boys","boots>brown","ties>casual","clothes","coats","clothes>girls","boots>brown>girls","clothes>small_men>hats","jackets","clothes>mens","clothes>red","boots>brown>red","clothes>small_men>scarfs","shoes","clothes>small_men","ties>smart","ties","clothes>womens"];
    $( "input[name=category]" ).autocomplete({
        source: categoryTags
    });
}
function prod_autocomplete(){
    var productTags = ["clothes>small_men>hats","boots>black","clothes>small_men>hats","clothes>small_men>hats","clothes>small_men>hats","clothes>small_men>hats","clothes>small_men>hats","clothes>small_men","clothes>small_men>hats","clothes>small_men>hats","clothes>small_men>hats","clothes>small_men>hats","clothes>small_men>hats","clothes>mens","clothes>small_men","clothes>small_men>hats","clothes>small_men>hats","clothes>small_men>hats","clothes>small_men>hats","clothes>small_men>hats"];
    $( "input[name=product]" ).autocomplete({
        source: productTags
    }); 
}
$(document).ready(function(){
    prod_autocomplete();
    cat_autocomplete();
});
</script>

編輯:php文件

<?php 
session_start();
try{
    require_once "../../classes/config.php";
    require_once "../../classes/database.php";
    require_once "../../classes/categories.php";
    require_once "../../classes/global_data.php";
    $cOb = new config();
    $cOb->set_mode(0);
    $cOb->set_table_prefix( 'lazy' );
    $cOb->dbdetails(array( 'dbuser' => '', 'dbpass' => '', 'dbserver' => 'localhost', 'dbname' => 'test' ) );
    $cOb->set_srv_root( 'C:/wamp/www/ecom_framework/' );
    $cOb->set_sec_root( 'http://localhost/ecom_framework/' );
    $cOb->set_web_root( 'http://localhost/ecom_framework/' );
    $con = Database::getInstance( $cOb );
    ob_start(); 
?>
<script type="text/javascript">
    function cat_autocomplete(){
        var categoryTags = [<?php
            $con = Database::getInstance();
            $sql = "SELECT cat_id FROM `" . $cOb::$table_prefix . "_tbl_category` ORDER BY cat_name";
            $re = $con->query($sql);
            $str = '';
            while( $ob = $re->fetch_object() ) {
                $str .= '"' . categories::get_breadcrum_from_id( $ob->cat_id, '>' ) . '",'; 
            }
            echo rtrim( $str, ',' ) . "];\n";
            ?>
        $( "input[name=category]" ).autocomplete({
            source: categoryTags
        });
    }
    function prod_autocomplete(){
        var productTags = [<?php
            $con = Database::getInstance();
            $sql = "SELECT cat_id, pd_name FROM `" . $cOb::$table_prefix . "_tbl_product` ORDER BY pd_name";
            $re = $con->query($sql);
            $str = '';
            while( $ob = $re->fetch_object() ) {
                $str .= '"' . categories::get_breadcrum_from_id( $ob->cat_id, '>' ) . '",'; 
            }
            echo rtrim( $str, ',' );
            ?>];
        $( "input[name=product]" ).autocomplete({
            source: productTags
        }); 
    }
    $(document).ready(function(){
        prod_autocomplete();
        cat_autocomplete();
    });
    </script>
    <?php 
    $content = ob_get_clean(); 
    header("Content-type: text/javascript");
    echo $content;
    exit;
}catch(Exception $err){
    die( $cOb->mode( $err->getMessage() ) );    
}
    ?>

嘗試在categoryTags之前不使用var關鍵字的情況。 我認為您的問題是Javascript范圍。 通過在初始化categoryTags之前使用var關鍵字,它屬於cat_autocompete函數的范圍。 但是,$()。autocomplete不在該函數的范圍內。 $()。autocomplete在其范圍內尋找一個categoryTags,而不是在窗口范圍內尋找它。 通過在cat_autocomplete函數中刪除var關鍵字,categoryTag將被綁定到窗口范圍,並且可用於$()。autocomplete。

function cat_autocomplete(){
 categoryTags = ["foo","bar"];
 $( "input[name=category]" ).autocomplete({
  source: categoryTags
 });
}

需要注意的是:亂扔全局名稱空間並不是解決問題的好方法。 但是,概述更好的方法超出了此答案的范圍。 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM