dols4me Posted June 27, 2016 Report Share Posted June 27, 2016 Вопрос в теме. Беру bootstrap через CDN.Добавляю navbar не нравится версия jquery а именно метод live который необходим для правильной работы simpla.как поступить? Как их подружить?Что бы было понятно что именно не работает, dropdawn и все динамические эллементы.Заранее большое спасибо. Quote Link to post Share on other sites
Solution mishanya Posted June 27, 2016 Solution Report Share Posted June 27, 2016 все потому что ajax_cart.js использует метод live который является устаревшим для новых версий jQuery. вам нужно либо добавить jQuery Migrate для того чтобы поддерживался live, либо уйти от live и переписать ajax_cart.js Quote Link to post Share on other sites
ps-simpla Posted June 27, 2016 Report Share Posted June 27, 2016 Беретесь за bootstrap, а задаете такие вопросы...Мишаня, верно написал, только вот еще проблема возникнет в admintooltip.jsПереходите на новую версию jQuery c поправкой скриптов необходимые для работы клиентской частиВ некоторых случаях помогает замена .live на .on Quote Link to post Share on other sites
dols4me Posted June 27, 2016 Author Report Share Posted June 27, 2016 все потому что ajax_cart.js использует метод live который является устаревшим для новых версий jQuery. вам нужно либо добавить jQuery Migrate для того чтобы поддерживался live, либо уйти от live и переписать ajax_cart.js Спасибо! Jquery migrate решил мою проблему хотя бы на время. Quote Link to post Share on other sites
osben Posted June 27, 2016 Report Share Posted June 27, 2016 еще маленький снипет по live => on if(!('live' in jQuery.fn)) { jQuery.fn.extend({ live: function (event, callback) { if (this.selector) { jQuery(document).on(event, this.selector, callback); } } }); } Quote Link to post Share on other sites
Kosjak76 Posted June 27, 2016 Report Share Posted June 27, 2016 Я в джаваскрипте не мастер, но заметил, что live не всегда равнозначно on.Особенно при подгрузке аяксом. Quote Link to post Share on other sites
filth Posted August 18, 2016 Report Share Posted August 18, 2016 все потому что ajax_cart.js использует метод live который является устаревшим для новых версий jQuery. вам нужно либо добавить jQuery Migrate для того чтобы поддерживался live, либо уйти от live и переписать ajax_cart.js Не поможете с этим? не силен в .js. Вычитал, что нужно добавить аргумент в метод ".on" по типу $('form.variants').on('submit','.argument',function(e).... Что добавить вместо ".argument"? Или не все так просто? Quote Link to post Share on other sites
chocolate_moles Posted August 18, 2016 Report Share Posted August 18, 2016 Что добавить вместо ".argument"? Или не все так просто? Попробуйте его вообще убрать $('form.variants').on('submit', function(e) Quote Link to post Share on other sites
filth Posted August 18, 2016 Report Share Posted August 18, 2016 Попробуйте его вообще убрать $('form.variants').on('submit', function(e) Если бы все так просто))) Не работает. Quote Link to post Share on other sites
chocolate_moles Posted August 18, 2016 Report Share Posted August 18, 2016 (edited) Если бы все так просто))) Не работает. адрес сайта скажите, или прикрепите файлы html/product.tpl и js/ajax_cart.js Edited August 18, 2016 by chocolate_moles Quote Link to post Share on other sites
filth Posted August 19, 2016 Report Share Posted August 19, 2016 адрес сайта скажите, или прикрепите файлы html/product.tpl и js/ajax_cart.jsproduct.tpl стандартный, еще не правился ajax_cart.js вот: $('form.variants').on('submit',function(e){e.preventDefault();button=$(this).find('input[type="submit"]');if($(this).find('input[name=variant]:checked').size()>0)variant=$(this).find('input[name=variant]:checked').val();if($(this).find('select[name=variant]').size()>0)variant=$(this).find('select').val();$.ajax({url:"ajax/cart.php",data:{variant:variant},dataType:'json',success:function(data){$('#cart_informer, #mobile_cart_informer').html(data);if(button.attr('data-result-text'))button.val(button.attr('data-result-text'));$.fancybox({href:'#cart_popup',title:'Корзина покупок','onStart':function(){$("#cart_popup").css("display","block");},'onClosed':function(){$("#cart_popup").css("display","none");}});}}); }); Quote Link to post Share on other sites
filth Posted August 19, 2016 Report Share Posted August 19, 2016 Все работало, на старом jQuery, понадобилось библиотеку 3.1 подключить, после неё перестали работать корзина и тултип. Тултип "починился" заменой .live на .on, а вот с корзиной не получается. Quote Link to post Share on other sites
filth Posted August 19, 2016 Report Share Posted August 19, 2016 (edited) Поколупался, получилось так // Аяксовая корзина $(document).ready(function() { $('form.variants').submit (function(e) {e.preventDefault(); button=$(this).find('input[type="submit"]'); if($(this).find('input[name=variant]:checked'))variant=$(this).find('input[name=variant]:checked').val(); if($(this).find('select[name=variant]'))variant=$(this).find('select').val(); $.ajax({ url:"ajax/cart.php", data:{variant:variant}, dataType:'json',success:function(data){$('#cart_informer, #mobile_cart_informer').html(data); if(button.attr('data-result-text'))button.val(button.attr('data-result-text')); $.fancybox({href:'#cart_popup',title:'Корзина покупок','onStart':function(){$("#cart_popup").css("display","block");},'onClosed':function(){$("#cart_popup").css("display","none");}});}}); }); }); Тут правда с модулем всплывающей корзины. Работает на jQuery 3.1.0P.S. Тут удалена анимация перелета товара в корзину.P.P.S. Убрал .size()>0) Так как .size не рабтает в новой jQuery, .length которая пришла на смену тоже ошибку выдает, тут пусть знатоки подскажут чем это чревато))).size()>0) Edited August 19, 2016 by filth Quote Link to post Share on other sites
filth Posted August 19, 2016 Report Share Posted August 19, 2016 Вроде разобрался))) Правильней всего будет такой код для ajax_cart.js // Аяксовая корзина $(document).ready(function() { $('form.variants').submit (function(e) {e.preventDefault(); button=$(this).find('input[type="submit"]'); if($(this).find('select[name=variant]').length>0) variant=$(this).find('select').val(); if($(this).find('input[name=variant]:checked').length>0) variant=$(this).find('input[name=variant]:checked').val(); $.ajax({ url:"ajax/cart.php", data:{variant:variant}, dataType:'json',success:function(data){$('#cart_informer').html(data); if(button.attr('data-result-text'))button.val(button.attr('data-result-text')); }}); var o1 = $(this).offset(); var o2 = $('#cart_informer').offset(); var dx = o1.left - o2.left; var dy = o1.top - o2.top; var distance = Math.sqrt(dx * dx + dy * dy); $(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance); $('.transfer_class').html($(this).closest('.product').find('.image').html()); $('.transfer_class').find('img').css('height', '100%'); return false; }); }); Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.