0

我被困在问题上......当我选择该选项时,我只在 ios 移动设备 14+ 所有浏览器上出现错误。我有代码

            jQuery(document).ready(function($) {
                    $('".$selector."').off('change',Virtuemart.cvFind);
                    $('".$selector."').on('change', { variants:[".$jsVariants."] },Virtuemart.cvFind);
                });

第二个代码函数

Virtuemart.cvFind = function(event) {
    event.preventDefault();
    var selection = [];

    var container = Virtuemart.findContainers(event);

    //console.log('my new ajax container ',Virtuemart.container);
    var found = false;

    //We check first if it is a radio
    jQuery(container).find('.cvselection:checked').each(function() {
        selection[selection.length] = jQuery(this).val();
        found = true;
    });
    if(!found){
        jQuery(container).find('.cvselection').each(function() {
            selection[selection.length] = jQuery(this).val();
        });
    }

    var index=0, i2=0, hitcount=0;
    //to ensure that an url is set, set the url of first product
    jQuery(this).prop('url',event.data.variants[0][0]);
    for (runs = 0; runs < selection.length; index++) {
        for (index = 0; index < event.data.variants.length; index++) {
            hitcount = 0;
            for (i2 = 0; i2 <= selection.length; i2++) {
                if(selection[i2]==event.data.variants[index][i2+1]){
                    hitcount++;
                    if(hitcount == (selection.length-runs)){
                        var url = event.data.variants[index][0].replace(/amp;/g, '');
                        jQuery(this).attr('url',url);
                        jQuery(this).val(url);
                        if(jQuery(this).attr('reload')){
                            Virtuemart.isUpdatingContent = true;
                            window.top.location.href = url;
                            return false;
                        }
                        //console.log('CV: return url '+url);
                        return url;
                    }
                } else {
                    break;
                }
            }
        }
        runs++;
        //console.log('CV: Could not find product for selection '+runs);
    }

    return false;
};

此代码仅在 IOS 14+ 返回错误

TypeError: ((n.event.special[g.origType]||{}).handle||g.handler).apply is not a function. (In '((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i)', '((n.event.special[g.origType]||{}).handle||g.handler).apply' is undefined)

jQuery 库 1+。我没有更多的想法如何修复这段代码......我做了

                jQuery(document).on('change', '".$selector."', function(event) {
                    //{ variants:[".$jsVariants."] },Virtuemart.cvFind);
                    //var variants = [".$jsVariants."];
                    //var event = [];
                    //event.data.variants = [".$jsVariants."];
                    
                    Virtuemart.cvFind(event, [".$jsVariants."]);
                    console.log(event);
                });

但仍然无法正常工作...

4

0 回答 0