我被困在问题上......当我选择该选项时,我只在 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);
});
但仍然无法正常工作...