jQuery 无法在实际环境中工作

标签 jquery smarty cs-cart

我有以下代码,在 jsfiddle 中运行良好 - http://jsfiddle.net/darkajax/FHZBy/

我已将代码转移到需要使用代码的页面,并为函数分配了正确的 ID 号,这是它应该工作的页面:

http://mtpassemblies.com/cs-cart/index.php?dispatch=products.view&product_id=29821

当用户在选项中进行选择时,应该填写零件编号框,这在实时版本上不会发生,而且我似乎没有收到任何错误消息。由于我没有收到任何错误消息,因此我不确定应该从哪里开始查看问题出在哪里。

根据我原来的消息,CS Cart 似乎是基于 Smarty 框架构建的,我不确定这是否与问题有关?

这是来自该站点的 jQuery:

<script type="text/javascript">// <![CDATA[
$(function() {
var sku1 = sku2 = sku3 = sku4 = sku5 = sku6 = length = '';
$("#opt_29821_746").change(function(){

    switch($(this).val()){
        case "3134":
             sku1 = 'TB';
        break;
        case "3135":
             sku1 = 'LT';
        break;
        case "3154":
            sku1 = 'LTR';
        break;
        case "3136":
             sku1 = 'BO';
        break;
        case "3138":
             sku1 = 'MC';
        break;
        case "3139":
             sku1 = 'NC';
        break;
        case "3183":
              sku1 = 'STA';
        break;
    }
    $('#option_29821_798').val(sku1+sku2+sku3+sku4+sku5+sku6+length);
});
$("#opt_29821_742").change(function(){
    switch($(this).val()){
        case "3111":
              sku2 = 'LC';
        break;
        case "3110":
             sku2 ='LCA';
        break;
        case "3112":
             sku2 ='E2000';
        break;
        case "3113":
             sku2 ='E2A';
        break;
        case "3114":
             sku2 ='FC';
        break;
        case "3115":
             sku2 ='FCA';
        break;
        case "3116":
             sku2 ='ST';
        break;
        case "3117":
             sku2 ='SC';
        break;
        case "3118":
             sku2 ='SCA';
        break;
    }
    $('#option_29821_798').val(sku1+sku2+sku3+sku4+sku5+sku6+length);
});
$("#opt_29821_744").change(function(){
    switch($(this).val()){
        case "3175":
              sku3 = '2';
        break;
        case "3121":
             sku3 ='4';
        break;
        case "3122":
             sku3 ='6';
        break;
        case "3123":
             sku3 ='8';
        break;
        case "3124":
             sku3 ='12';
        break;
        case "3125":
             sku3 ='16';
        break;
        case "3126":
             sku3 ='24';
        break;
        case "3176":
             sku3 ='48';
        break;
    }
    $('#option_29821_798').val(sku1+sku2+sku3+sku4+sku5+sku6+length);
});

$("#opt_29821_745").change(function(){
    switch($(this).val()){
        case "3127":
              sku4 = 'OS12';
        break;
        case "3182":
             sku4 ='G657A1';
        break;
        case "3128":
             sku4 ='OM1';
        break;
        case "3129":
             sku4 ='OM2';
        break;
        case "3130":
             sku4 ='OM3';
        break;
        case "3131":
             sku4 ='OM4';
        break;
    }
    $('#option_29821_798').val(sku1+sku2+sku3+sku4+sku5+sku6+length);
});

$("#opt_29821_748").change(function(){
    switch($(this).val()){
        case "3142":
              sku5 = 'LC';
        break;
        case "3143":
             sku5 ='LCA';
        break;
        case "3144":
             sku5 ='E2000';
        break;
        case "3145":
             sku5 ='E2A';
        break;
        case "3146":
             sku5 ='FC';
        break;
        case "3147":
             sku5 ='FCA';
        break;
        case "3148":
             sku5 ='ST';
        break;
        case "3149":
             sku5 ='SC';
        break;
        case "3150":
             sku5 ='SCA';
        break;
    }
    $('#option_29821_798').val(sku1+sku2+sku3+sku4+sku5+sku6+length);
});

$("#opt_29821_749").change(function(){
    switch($(this).val()){
        case "3151":
              sku5 = 'LZSH';
        break;
        case "3177":
             sku5 ='PE';
        break;
    }
    $('#option_29821_798').val(sku1+sku2+sku3+sku4+sku5+sku6+length);
});

$('#opt_29821_753').change(function(){
    length = $(this).val();
    $('#option_29821_798').val(sku1+sku2+sku3+sku4+sku5+sku6+length);
});
});
// ]]></script>
<小时/>

更新

经过进一步调查并与不同的人交谈后,问题似乎是由 CS Cart 内置的内联 onchange 事件与我编写的 jQuery 冲突引起的。

所以问题似乎更多的是是否有可能让代码与内联编码触发的函数一起工作?

最佳答案

只有静态内容才会触发 .change() 事件。在你的情况下,你应该使用 jQuery 的 .on() 事件,例如:

 $("#opt_29821_745").on('change', function() {
 ....

关于jQuery 无法在实际环境中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9868725/

相关文章:

javascript - 如何使用 JQuery 在 5 秒后清除文本框值?

php - 在 Smarty 上使用多页的最佳方式

php - 跨多个文件替换输入标签的值

javascript - 使用不同版本的 jQuery 加载插件

html - 如何使用CSS正确定位图像

javascript - 检查文本字段中的值是否已更改并发布。 JS。 rails

javascript - 呈现元素列表(图像)并放入 html 面板(使用 javascript 等)

mysql - cs cart - 本地主机上的 mySQL 错误

javascript - 如何在 Ajax Jquery 中成功打开或显示导航选项卡?

php - 如何使用 smarty 检查服务器上是否存在图像?