我是否正确地将变量传递给方法?

问题描述

我有一大块 jQuery,它完全表现得不像我期望的那样。

我从 HTML 下拉列表中获取选定的值并将其存储在一个变量中。然后使用该变量选择 HTML 元素 ID。

这是我用于下拉菜单<select>

<select id="bubble-tea-flavor" class="" name="attribute_bubble-tea-flavor" data-attribute_name="attribute_bubble-tea-flavor" data-show_option_none="yes">
     <option value="">Choose an option</option>
     <option value="Kiwi Apple" >Kiwi Apple</option>
     <option value="Peach Mango" >Peach Mango</option>
     <option value="Pineapple Peach" >Pineapple Peach</option>
</select>

以下是我尝试定位的 HTML 标签

                <rs-slides>
                    <rs-slide data-key="rs-1" data-title="pineapplepeach" data-anim="ms:1000ms;" data-in="o:0;" data-out="a:false;" class="pineapplepeach" id="pineapplepeach">
                        ...
                    </rs-slide>
                    <rs-slide data-key="rs-3" data-title="peachmango" data-in="o:0;" data-out="a:false;" class="peachmango" id="peachmango">
                        ...
                    </rs-slide>
                    <rs-slide data-key="rs-4" data-title="kiwiapple" data-anim="ms:1000ms;" data-in="o:0;" data-out="a:false;" class="kiwiapple" id="kiwiapple">
                        ...
                    </rs-slide>
                </rs-slides>

这是 jQuery 代码段:

jQuery(function($) {
    $( "#bubble-tea-flavor" ).change( function() {
        var slide = $(this).children("option:selected").val();
        console.log(slide);
        var selectedFlavorID = slide.replace(/\s+/g,'').toLowerCase();
        console.log(selectedFlavorID);

        revapi1.revcallslidewithid(selectedFlavorID);
    });
});

肯定在某种程度上有效。控制台日志显示正在正确捕获和修改值:

JQMIGRATE: Migrate is installed,version 3.3.2
(index):290 Peach Mango
(index):292 peachmango
(index):290 Pineapple Peach
(index):292 pineapplepeach
(index):290 Kiwi Apple
(index):292 kiwiapple

但是……什么也没发生。我做错了什么?

或者,由于这是针对 Revolution Slider 并且可能比我想象的更复杂,我如何使用 Chrome 查看调用 revapi1.revcallslidewithid(selectedFlavorID); 时发生的情况?

作为参考,这里是我的截图来自的整个 <script> 标签

                <script type="text/javascript">
                setREvstartSize({c: 'rev_slider_1_1',rl:[1240,1024,778,480],el:[900],gw:[1240],gh:[900],type:'standard',justify:'',layout:'fullscreen',offsetContainer:'',offset:'',mh:"0"});
                var revapi1,tpj;
                function revinit_revslider11() {
                jQuery(function() {
                    tpj = jQuery;
                    revapi1 = tpj("#rev_slider_1_1");
                    if(revapi1==undefined || revapi1.revolution == undefined){
                        revslider_showDoubleJqueryError("rev_slider_1_1");
                    }else{
                        revapi1.revolution({
                            sliderLayout:"fullscreen",visibilityLevels:"1240,480",gridwidth:1240,gridheight:900,enableupscaling:true,perspective:600,perspectiveType:"global",editorheight:"900,768,960,720",responsiveLevels:"1240,progressBar: {
                                style:"vertical",horizontal:"center",vertical:"top",size:5
                            },navigation: {
                                onHoverStop:false
                            },fallbacks: {
                                allowHTML5AutoplayOnAndroid:true
                            },});
                        jQuery(function($) {
$( "#bubble-tea-flavor" ).change( function() {
    var slide = $(this).children("option:selected").val();
    console.log(slide);
    var selectedFlavorID = slide.replace(/\s+/g,'').toLowerCase();
    console.log(selectedFlavorID);

    revapi1.revcallslidewithid(selectedFlavorID);
});
});
                    }
                    
                });
                } // End of RevInitScript
            var once_revslider11 = false;
            if (document.readyState === "loading") {document.addEventListener('readystatechange',function() { if((document.readyState === "interactive" || document.readyState === "complete") && !once_revslider11 ) { once_revslider11 = true; revinit_revslider11();}});} else {once_revslider11 = true; revinit_revslider11();}
            </script>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)