Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   обработка элемента по id DOM prototype? (https://javascript.ru/forum/events/16356-obrabotka-ehlementa-po-id-dom-prototype.html)

frontera 05.04.2011 11:12

обработка элемента по id DOM prototype?
 
Здравствуйте!
Прошу сильно не пинать, в JavaScript я, прямо скажем, не силен. в php то пожайлуста, а с клиент-сайдом как то не сложилось.

Прошу помощи у знающих людей в следующем вопросе. Суть такова, есть блок:
<div class="addcart" id="ECS_CARTINFO" onMouseOver="DIVShow()" onMouseOut="DIVHide()">
	<a href="flow.php">В корзине товаров: <em>0</em></a></div>
<div id="dialog" onMouseOver="DIVShow()" onMouseOut="DIVHide()">
	<div class="arrow"></div>
	<div class="tipbox">
	<div class="tip"><a href="flow.php">В вашей корзине товаров: <em>0</em> <br />На сумму <em>0 руб</em></a></div>
	</div>
</div>

по идее, после обпределенной обработки, цифры должны поменяться, а он перед существующим блоком добавляет еще один такой-же с изменными цифрами, и в результате все съезжает...
как бороться не знаю, куда копать - тоже... смотрел Firefox + firebug но ни шиша не понял КАК....
подскажите советом.сайт на котором установлено www-rc-fun.ru

P.S. Прошу простить если в сабже фигню сморозил... я пока только стараюсь понять как это работает, но ничего не получается. :(

frontera 07.04.2011 15:26

Если никто не знает, может тогда хотябы подскажете где что искать, и как это примерно может выглядеть?!

poorking 07.04.2011 15:31

Вы код скрипта забыли привести. А вообще кажется что у вас там гдето написано не someelem.innerHTML = "чтото", а someelem.innerHTML += "чтото" или подобное, покажите тот кусок кода где значение в поле меняете

frontera 07.04.2011 15:43

если я верно понимаю, то вот эта функция:
function addToCartResponse(result)
{
  if (result.error > 0)
  {

   если выявлены ошибки при добавлении
    }

    else if (result.error == 6)
    {
      openSpeDiv(result.message, result.goods_id, result.parent);
    }
    else
    {
      alert(result.message);
    }
  }
  else
  {
    var cartInfo = document.getElementById('ECS_CARTINFO');
    var cart_url = 'flow.php?step=cart';
    if (cartInfo)
    {
      cartInfo.innerHTML = result.content;
    }

    if (result.one_step_buy == '1')
    {
      location.href = cart_url;
    }
    else
    {
      switch(result.confirm_type)
      {
        проверка на тип подтверждения
      }
    }
  }
}

poorking 07.04.2011 16:10

Ну тут заменяется внутренность вот этого <div class="addcart" id="ECS_CARTINFO" дива на result.content, div id = "dialog" тут не трогается. Если оно чем то не логичным заменяется, ищите выше, где генерируется result, и почему бы не спросить того, кто вам код писал?

frontera 07.04.2011 19:16

еслиб это было возможно - я сюда не писАл бы... и уж тем более не лез в код JavaScript, но вот приперло...

сотрим в firebug: до
<div onmouseout="DIVHide()" onmouseover="DIVShow()" id="ECS_CARTINFO" class="addcart">
	<a href="flow.php">В корзине товаров: <em>0</em></a></div>
<div onmouseout="DIVHide()" onmouseover="DIVShow()" id="dialog" style="display: none;">
	<div class="arrow"></div>
	<div class="tipbox">
	<div class="tip"><a href="flow.php">В вашей корзине товаров: <em>1</em> <br>На сумму <em>2790 руб</em></a></div>
	</div>
</div>

после:
<div onmouseout="DIVHide()" onmouseover="DIVShow()" id="ECS_CARTINFO" class="addcart"><div onmouseout="DIVHide()" onmouseover="DIVShow()" id="ECS_CARTINFO" class="addcart">
	<a href="flow.php">В корзине товаров: <em>2</em></a></div>
<div onmouseout="DIVHide()" onmouseover="DIVShow()" id="dialog">
	<div class="arrow"></div>
	<div class="tipbox">
	<div class="tip"><a href="flow.php">В вашей корзине товаров: <em>2</em> <br>На сумму <em>3270 руб</em></a></div>
	</div>
</div>
</div>


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