Javascript 未捕获引用错误:magento站点中未定义jQuery

Javascript 未捕获引用错误:magento站点中未定义jQuery,javascript,jquery,database,magento,magento-1.9,Javascript,Jquery,Database,Magento,Magento 1.9,我们正在使用以下脚本,并且在console中我们得到了以下错误: 我们有magento站点1.9.0 我们提供了一个从前端保存值的选项 在前端,值不会保存在数据库中 jquery错误有问题吗?我按照这个链接的第一个答案回答:但它对我不起作用 html代码 <span class="label qty" id="valueqty_<?php echo $assinproducts->getId(); ?>"> <?php echo intval

我们正在使用以下脚本,并且在console中我们得到了以下错误:

我们有magento站点1.9.0

我们提供了一个从前端保存值的选项

在前端,值不会保存在数据库中

jquery错误有问题吗?我按照这个链接的第一个答案回答:但它对我不起作用

html代码

<span class="label qty" id="valueqty_<?php echo $assinproducts->getId(); ?>">
        <?php echo intval($assinproducts['qty']); ?>
    </span>

    <input type = "text" id = "qty_<?php echo $assinproducts->getId(); ?>" onkeydown="validateNumbers(event)" 
    name="stock" value="<?php echo intval($assinproducts['qty']); ?>" style="display:none;"/>

    <span class="label wk_action" id="edit_link_<?php echo $assinproducts->getId(); ?>">
        <img onclick="showField('<?php echo $assinproducts->getId(); ?>'); return false;" 
        src="<?php echo $this->getSkinUrl('marketplace/images/icon-edit.png'); ?>"/>
    </span>

    <p id="updatedqty_<?php echo $assinproducts->getId(); ?>" style = "display:none;color:red;">Updated</p><br/>

    <button id="update_button_<?php echo $assinproducts->getId(); ?>" class="button wk_mp_btn1" 
    onclick="updateField('<?php echo $assinproducts->getId(); ?>',<?php echo intval($assinproducts['qty']); ?>); return false;" style="display:none" >
        <span>
            <span style="font-size:12px;"><?php echo $helper->__('Update') ?></span>
        </span>
    </button>

    <button id="reset_button_<?php echo $assinproducts->getId(); ?>" type="reset" class="cancel" 
    onclick="hideReset('<?php echo $assinproducts->getId(); ?>'); return false;" style="display:none"></button>

您面临的错误是因为您没有给出jQuery库的正确路径,这就是为什么您的页面没有获得jQuery,因此显示错误
jQuery未定义
$未定义

默认情况下使用。因为它使用jquery, 建议使用此默认jquery包

默认jquery是从目录
js/lib/jquery/jquery-1.10.2.min.js
加载的。如果进一步检查,还可以看到另一个jquery文件(位于
/js/lib/jquery/noconflict.js
),该文件用于避免jquery冲突。这是js文件的内容

// Avoid PrototypeJS conflicts, assign jQuery to $j instead of $
var $j = jQuery.noConflict();
看看评论。它说,您应该使用
$j
istead of
$
。这意味着为了避免冲突,您需要确保三件事

1) 不要使用新的jquery包,坚持使用默认的jquery包。你不必为这一步操心。Magento将为您加载其jquery。所以请不要再添加jquery

2) 确保在默认jquery库之后加载
noconflict.js
。默认情况下,这也是由Magento管理的

3) 现在添加放大镜库js文件(如果有的话)(可选步骤。仅当放大镜技术依赖于任何jquery包时才需要)


4) 使用使用放大镜js库的自定义js文件。在这个文件中,您应该在任何地方使用
$j
,而不是使用
$
。这样Magento就不会产生任何jquery冲突。

正如我看到的jquery.js就在carrousal.js文件的下方。请将jQuery放在页面顶部,然后使用no.Conflict,希望这对您有所帮助


Thnaks

很可能您没有在页面上加载jQuery。您不应该在页面上包含jQuery,而应该通过布局xml来完成。您甚至可以通过将其添加到应用程序/design/frontend/package/theme/layout中的page.xml来为前端的每个页面执行此操作。一旦确定页面上加载了jQuery,就可以选择按原样使用noconflict,或者用工作jQuery替换“$”。请确保你是一致的,我在你的代码中注意到:

function updateField(product_id,assignqty)
{

//  alert("Hello! I am an alert box!!");
    var qtyId           = '#qty_'+ product_id;
    var valueId         = '#valueqty_'+ product_id;
    var updatedqty      = '#updatedqty_'+ product_id;
    var editLink        = "#edit_link_"+ product_id;
    var updateButton    = "#update_button_"+ product_id;
    var resetButton     = "#reset_button"+ product_id;
    var url             = '<?php echo Mage::getUrl('marketplace/marketplaceaccount/updateField/')?>';

    $wk_jq(qtyId).toggle();
    $wk_jq(editLink).hide();
    $wk_jq(updateButton).show();
    $wk_jq(resetButton).show();

    $qty = $wk_jq(qtyId).val();
    jQuery(valueId).html($qty);
    hideReset(product_id);

    var tmpQty = assignqty+parseInt($qty) ;

    new Ajax.Request(url, {
        method: 'post',
        parameters: {id: product_id, qty: tmpQty},
        onComplete: function (transport) {
        //  alert(tmpQty);
            jQuery(priceId).val($price);                
    jQuery(updatedqty).show().delay(2000).fadeOut();
            $updateButton.prop('disabled', false);
        }
    });
}
函数更新字段(产品标识,分配数量)
{
//警报(“你好!我是一个警报框!!”);
变量qtyId='#数量+产品id;
var valueId='#valueqty'+产品id;
var updatedqty='#updatedqty'+产品id;
var editLink=“#编辑链接”+产品id;
var updateButton=“#更新按钮”+产品id;
var resetButton=“#reset_button”+产品id;
var url='';
$wk_jq(qtyId).toggle();
$wk_jq(editLink).hide();
$wk_jq(updateButton).show();
$wk_jq(重置按钮).show();
$qty=$wk_jq(qtyId).val();
jQuery(valueId).html($qty);
隐藏设置(产品标识);
var tmpQty=分配数量+parseInt($qty);
新的Ajax.Request(url{
方法:“post”,
参数:{id:product\u id,qty:tmpQty},
未完成:功能(传输){
//警报(tmpQty);
jQuery(priceId).val($price);
jQuery(updatedqty).show().delay(2000).fadeOut();
$updateButton.prop('disabled',false);
}
});
}

您将noconflict与原型使用的普通$variable混合在一起。例如$qty、$price和updatebutton。如果您试图在此处使用php变量,则必须将它们包装在php标记中并将其回显。

您的错误消息清楚地表明您的
jQuery
变量未定义。只要改变这个

var$wk_jq=jQuery.noConflict()


var$wk_jq=$.noConflict()

我是js新手。请通过在我的代码中提供jQuery库的正确路径来给我更新的代码。您可以使用在线库:这肯定会解决您的错误,尽管不建议在任何应用程序中使用在线库,但这将工作我在文件中添加了类似于此的代码
,但它没有工作,有没有什么地方我必须使用这段代码?我必须先使用jquery代码,然后再使用html代码?我现在正在检查。我没在js/lib文件夹下找到jquery文件夹,我正在从网站的根目录进行检查。你能给我确认一下路吗可能您的magento安装不干净!?你能不能把代码包装在一个php标签中,并对其进行回显来更新代码。哪些变量是php?因此,如果$price是一个php变量jQuery(priceId).val();对不起,我在我的文件中没有找到这些文本:
jQuery.js&carrousal.js
an请用完整代码更新答案。请在顶部添加1.2.6.min.js。正如我看到的,它就在carousal JS的下方,在哪里更改这个变量?请帮我找到文件。
// Avoid PrototypeJS conflicts, assign jQuery to $j instead of $
var $j = jQuery.noConflict();
function updateField(product_id,assignqty)
{

//  alert("Hello! I am an alert box!!");
    var qtyId           = '#qty_'+ product_id;
    var valueId         = '#valueqty_'+ product_id;
    var updatedqty      = '#updatedqty_'+ product_id;
    var editLink        = "#edit_link_"+ product_id;
    var updateButton    = "#update_button_"+ product_id;
    var resetButton     = "#reset_button"+ product_id;
    var url             = '<?php echo Mage::getUrl('marketplace/marketplaceaccount/updateField/')?>';

    $wk_jq(qtyId).toggle();
    $wk_jq(editLink).hide();
    $wk_jq(updateButton).show();
    $wk_jq(resetButton).show();

    $qty = $wk_jq(qtyId).val();
    jQuery(valueId).html($qty);
    hideReset(product_id);

    var tmpQty = assignqty+parseInt($qty) ;

    new Ajax.Request(url, {
        method: 'post',
        parameters: {id: product_id, qty: tmpQty},
        onComplete: function (transport) {
        //  alert(tmpQty);
            jQuery(priceId).val($price);                
    jQuery(updatedqty).show().delay(2000).fadeOut();
            $updateButton.prop('disabled', false);
        }
    });
}