[英]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.