Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   фрагмент кода (https://javascript.ru/forum/misc/62283-fragment-koda.html)

диана1975 02.04.2016 22:15

фрагмент кода
 
здравствуйте, стыдно спрашивать такую ерунду, но надо.
вот фрагмент кода: http://prntscr.com/anb6mp
надо, чтобы слово изменить было в <label>, а не рядом с ним, как сейчас

Вот мой скрипт:
<script> 
     
    jQuery(function(){
		jQuery("#block_attr_sel_7").css("display","none").closest("td").prev().find(".attributes_title").css("display","none");
		var wsID="#block_attr_sel_7",
		selID="#jshop_attr_id4",
		selValOpen="22",
		selValClose="23";
		function openDW(wsID){
			jQuery.openDOMWindow({
				windowSourceID: wsID,
				overlayOpacity: 5,
				windowBGColor: "#fff",
				functionCallOnOpen:function(){
				  jQuery(wsID).hide();
				  jQuery("#DOMWindow .input_type_radio").show().css("display","block");
				  jQuery('#DOMWindow').append('<div class="closeDW">X</div>');
				  jQuery('.closeDW').css({'position':'absolute', 'top':'5px', 'right':'10px', 'font-size':'22px', 'cursor':'pointer'});
				},
		   });
		}
		function closeDW(wsID){
			jQuery.closeDOMWindow({
				windowSourceID: wsID,
				overlayOpacity: 5,
				windowBGColor: "#fff",
				functionCallOnClose:function(){ 
				},
				functionCallAfterClose:function(){
					if(jQuery(selID+" :selected").length && jQuery(selID+" :selected").val()===selValOpen){
						afterCloseDOMWindow(wsID);
					}
				}
							  
			}); 
		}
		function afterCloseDOMWindow(wsID){
			jQuery(wsID).show(500, function(){
				jQuery(wsID+" .input_type_radio").hide();
				jQuery(wsID+" input:checked").parent(".input_type_radio").show().css("display","block");  
				jQuery(wsID+" input:checked").parent(".input_type_radio").append('<div >изменить</div>');                     
				jQuery('.closeDW').remove();           	 
			}).css("display","block");           
		}
		function funcAfterChangeAttrMod(){			
			if(jQuery(selID+" :selected").length && jQuery(selID+" :selected").val()===selValOpen){
				openDW(wsID);
			}
			if(jQuery(selID+" :selected").length && jQuery(selID+" :selected").val()===selValClose){
				jQuery(wsID).hide();
			}
		}
		
		reloadAttribEvents.push(funcAfterChangeAttrMod);		
		jQuery("body").on("click","#DOMWindowOverlay, .closeDW",function(){
			closeDW(wsID);
		});
});
     </script>



что надо дописать в 41 строке?

ссылка на проблему: http://adellin.ru/serebro/stolovoe-s...lozhka-tsvetok

надо нажать с футляром-> да

рони 02.04.2016 22:21

диана1975,
jQuery(wsID+" input:checked").parent(".input_type_radio").find("label").append('изменить');

диана1975 02.04.2016 23:00

спасибо, Рони, но там как-то ненормально стало работать : изменить добавляется при каждом закрытии окна и еще в окне появляется, а в окне мне не надо

рони 03.04.2016 00:06

диана1975,
если в окне и на странице одинаковые id , естественно добавится в оба места и не по разу, раз вы не отслеживаите добавление никак.
для медитации
var label = jQuery(wsID+" input:checked").parent(".input_type_radio").find("label").eq(0);//а может eq(1)
var change = label.data("change");
if (!change) {
   label.append('<div >изменить</div>');
   label.data("change", true)
};

диана1975 04.04.2016 00:28

наполовину исправилось, осталось сделать так, чтобы у выбранной опции в модальном окне слово изменить не появлялось...
как быть?

рони 04.04.2016 00:55

диана1975,
более того что написано выше добавить нечего.

диана1975 04.04.2016 08:11

А я думала, возможности ява скрипт безграничны...
почему, интересно, добавить нечего?

диана1975 04.04.2016 08:30

спасибо, рони, за помощь, плюсануть не могу- не разрешают...
кого-нибудь другого плюсани, говорят, зачем другого, если второй раз подряд один человек помогает? странно у вас здесь все устроено...

рони 04.04.2016 08:32

диана1975,
потому что, почему это происходит и как это исправить уже написано выше,по крайне мере алгоритм, но похоже вы сами не ведаите, что творите.

рони 04.04.2016 09:24

диана1975,
ищите нового специалиста, у меня похоже глаз замылился :)

диана1975 04.04.2016 12:29

А я с помощью CSS скрыла, что не надо, так что нормально, спасибо!

диана1975 14.09.2016 21:02

Здравствуйте, нашла в этом же коде проблему, которую ранее не заметила, а именно:
я, как покупатель зашел на эту
страницу, решил купить ложку с футляром за 100 рублей, для этого выбираю опцию "да". Все нормально, к базовой цене добавилась стоимость футляра (2355+100 = 2455 руб).
Но вдруг я передумал и хочу взять ложку без футляра.
Опцию "да" меняю на "нет". Но! цена остается 2455, хотя должна быть без стоимости футляра, и далее, при всех этапах покупки идет цена с футляром. Помогите разобраться, пожалуйста, вот код скрипта:
<script> 
     
    jQuery(function(){
		jQuery("#block_attr_sel_7").css("display","none").closest("td").prev().find(".attributes_title").css("display","none");
		var wsID="#block_attr_sel_7",
		selID="#jshop_attr_id4",
		selValOpen="22",
		selValClose="23";
		function openDW(wsID){
			jQuery.openDOMWindow({
				windowSourceID: wsID,
				overlayOpacity: 5,
				windowBGColor: "#fff",
				functionCallOnOpen:function(){
				  jQuery(wsID).hide();
				  jQuery("#DOMWindow .input_type_radio").show().css("display","block");
				  jQuery('#DOMWindow').append('<div class="closeDW"><span>закрыть</span> X</div>');
				  jQuery('.closeDW').css({'position':'absolute', 'top':'5px', 'right':'10px', 'font-size':'22px', 'cursor':'pointer'});
				},
		   });
		}
		function closeDW(wsID){
			jQuery.closeDOMWindow({
				windowSourceID: wsID,
				overlayOpacity: 5,
				windowBGColor: "#fff",
				functionCallOnClose:function(){ 
				},
				functionCallAfterClose:function(){
					if(jQuery(selID+" :selected").length && jQuery(selID+" :selected").val()===selValOpen){
						afterCloseDOMWindow(wsID);
					}
				}
							  
			}); 
		}
		function afterCloseDOMWindow(wsID){
			jQuery(wsID).show(500, function(){
				jQuery(wsID+" .input_type_radio").hide();
				jQuery(wsID+" input:checked").parent(".input_type_radio").show().css("display","block");  
				var label = jQuery(wsID+" input:checked").parent(".input_type_radio").find("label").eq(0);//а может eq(1)
var change = label.data("change");
if (!change) {
   label.append('<div >изменить</div>');
   label.data("change", true)
};
                     
				jQuery('.closeDW').remove();           	 
			}).css("display","block");           
		}
		function funcAfterChangeAttrMod(){			
			if(jQuery(selID+" :selected").length && jQuery(selID+" :selected").val()===selValOpen){
				openDW(wsID);
			}
			if(jQuery(selID+" :selected").length && jQuery(selID+" :selected").val()===selValClose){
				jQuery(wsID).hide();
			}
		}
		
		reloadAttribEvents.push(funcAfterChangeAttrMod);		
		jQuery("body").on("click","#DOMWindowOverlay, .closeDW",function(){
			closeDW(wsID);
		});
});
     </script>

рони 14.09.2016 21:58

диана1975,
как вы в своём коде не плутаите ...
костыль ....
function funcAfterChangeAttrMod(){
      if(jQuery(selID+" :selected").length && jQuery(selID+" :selected").val()===selValOpen){
        openDW(wsID);
      }
      if(jQuery(selID+" :selected").length && jQuery(selID+" :selected").val()===selValClose){
        jQuery(wsID).hide().find("[type='radio']:first").click();

      }
    }

вам для полного счасться осталось придумать что делать с кнопкой да если футляр не выбрали

диана1975 14.09.2016 22:29

спасибо, профессор, но теперь при вышеизложенной цепочке действий дублируются варианты футляров...
что делать?

рони 14.09.2016 22:46

диана1975,
пас, не осилить более.

диана1975 14.09.2016 22:55

а мне тем более... ладно, не буду углубляться, надо что-нибудь попроще придумать.. спасибо, Ронни

warren buffet 16.09.2016 12:45

Цитата:

Сообщение от диана1975
Но вдруг я передумал и хочу взять ложку без футляра.

Если ложка и футляр продаются отдельно, значит это 2 артикула, то есть две товарные позиции, или два товара. Следовательно добавлять ложку ты можешь со страницы ложки, а футляр со страницы футляра. Или, если сильно хочется, "покупать" ложку со страницы ложки, а футляр из блока "сопутствующих" где есть кнопка "купить" прямо в списке .

И в чеке затем будет написано

Ложка арт.0006 1х3000 3000
Футляр арт.7525 1х2000 2000
итого 5000

Словом твоя проблема не в скриптах, а в бизнес-логике.


Часовой пояс GMT +3, время: 08:18.