Jump to content

Bootstrap 3 и simpla как подружить?


Go to solution Solved by mishanya,

Recommended Posts

Вопрос в теме. 

Беру bootstrap через CDN.

Добавляю navbar не нравится версия jquery а именно метод live который необходим для правильной работы simpla.

как поступить? Как их подружить?

Что бы было понятно что именно не работает, dropdawn и все динамические эллементы.

Заранее большое спасибо.

Link to post
Share on other sites
  • Solution

все потому что ajax_cart.js использует метод live который является устаревшим для новых версий jQuery. вам нужно либо добавить jQuery Migrate для того чтобы поддерживался live, либо уйти от live и переписать ajax_cart.js 

Link to post
Share on other sites

Беретесь за bootstrap, а задаете такие вопросы...
Мишаня, верно написал, только вот еще проблема возникнет в admintooltip.js
Переходите на новую версию  jQuery c поправкой скриптов необходимые для работы клиентской части
В некоторых случаях помогает замена .live на .on

Link to post
Share on other sites

все потому что ajax_cart.js использует метод live который является устаревшим для новых версий jQuery. вам нужно либо добавить jQuery Migrate для того чтобы поддерживался live, либо уйти от live и переписать ajax_cart.js 

Спасибо! Jquery migrate решил мою проблему хотя бы на время.

Link to post
Share on other sites

еще маленький снипет по live => on 
 

	if(!('live' in jQuery.fn))
	{
		jQuery.fn.extend({
			live: function (event, callback) {
				if (this.selector) {
					jQuery(document).on(event, this.selector, callback);
				}
			}
		});
	}
Link to post
Share on other sites
  • 1 month later...

все потому что ajax_cart.js использует метод live который является устаревшим для новых версий jQuery. вам нужно либо добавить jQuery Migrate для того чтобы поддерживался live, либо уйти от live и переписать ajax_cart.js 

Не поможете с этим? не силен в .js. Вычитал, что нужно добавить аргумент в метод ".on" по типу 

$('form.variants').on('submit','.argument',function(e)....

Что добавить вместо ".argument"? Или не все так просто?

Link to post
Share on other sites

адрес сайта скажите, или прикрепите файлы html/product.tpl и js/ajax_cart.js

product.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");}});}});

});
Link to post
Share on other sites

Все работало, на старом jQuery, понадобилось библиотеку 3.1 подключить, после неё перестали работать корзина и тултип. Тултип "починился" заменой .live на .on, а вот с корзиной не получается.

Link to post
Share on other sites

Поколупался, получилось так

// Аяксовая корзина
$(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.0

P.S. Тут удалена анимация перелета товара в корзину.

P.P.S. Убрал 

.size()>0) 

 

Так как .size не рабтает в новой jQuery, .length которая пришла на смену тоже ошибку выдает, тут пусть знатоки подскажут чем это чревато)))

.size()>0)
Edited by filth
Link to post
Share on other sites

Вроде разобрался))) Правильней всего будет такой код для 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;
});
});
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...