Smarty + php + javascript проблема

blackcarrot

Новичок
Сперва код с разъяснением:

вывожу на сранице список товаров (файл index.tpl)

PHP:
<div id="goods">
{if $latest_stuff}
             
{include file="stuff.tpl" }
</div>
{/if}

файл stuff.tpl


PHP:
{section name=stuff loop=$latest_stuff}
                  
                          <div class="tovar">
                          //название товара
                          //цена
                         //....
                          <input id="stuff_id{$latest_stuff[stuff].id}" type="hidden" name="delete_tov" value="{$latest_stuff[stuff].id}" />

    <div class="editmenu"><a href="#" class="delete-stuff">Удалить</a> 

                           </div>
{/section}
как видите у каждого товара есть див в котором есть ссылка Удалить, по нажатию на которой я отправляю пост запрос на страницу обработки:
файл script.js

PHP:
$(".delete-stuff").click(function(){
    
        var stuff_id = $(this).parent().prev('input').val();
        
        
        var sitename = $('.buy-sitename'+stuff_id).val();
               
         
        var data = {
            delete_tov: stuff_id,
                                                   
            new: 1
        }
      
        $.post(sitename+'/stuff.php',data,function(data,status){
                              
                var newHtml = data;
                                 
                $('#goods').html(newHtml);
                
                
            
        });
                    
   
    
    
   return false;
    
    
    
});
при удачном запросе обновляю див с товарами
файл stuff.php

PHP:
session_start();
header('Content-Type: text/html; charset=cp1251;');

require_once("config.php");
require_once("functions.php");
require './Smarty/libs/Smarty.class.php';

$smarty = new Smarty;

$smarty->compile_check = true;
$smarty->debugging = false;
$smarty->force_compile = 1;

if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
    {
if(isset($_POST['delete_tov'])){
    
    $id=htmlspecialchars($_POST['delete_tov'],ENT_QUOTES);
  mysql_query("UPDATE items SET status = 'deleted'  WHERE id = '$id'",$conn);
  mysql_query("DELETE FROM tags WHERE id_stuff = '{$id}'",$conn);

}

}

$latest_stuff=get_latest_stuff($user->id); 
$smarty->assign("latest_stuff",$latest_stuff);
$smarty->assign("sitename",$sitename);
$smarty->assign("user",$user);
$smarty->display('stuff.tpl');



тоесть респонсу я скармливаю отображение файла stuff.tpl

В чем собственно проблема: когда я кликаю по ссылке товар удаляется, див обновляется но перестает работать яваскрипт, не выезжает меню с кнопкой!

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

На мой взгляд при обновлении блока, смарти перестает видить файлы яваскрипта.

Очень прошу помогите разобраться, очень расстраивает меня этот глюк.
 

blackcarrot

Новичок
огромное спасибо, заработало, правда теперь появился еще глюк с дивом который появляется по наведению на товар
было так

PHP:
$('.ramka').hover(
	        function() {
            $(this).find('div:first').stop(true, true);
	            $(this).find('div:first').slideDown('fast');
	        },
	        function() {
	            $(this).find('div:first').slideUp('fast');
	        }
	    );
сделал так
PHP:
$(".ramka").live('mouseover mouseout', function(event) {
        if (event.type=='mouseover') {
                $(this).find('div:first').stop(true, true);
	            $(this).find('div:first').slideDown('fast');
        }

        if (event.type=='mouseout') {
              $('.ramka').find('div:first').slideUp('fast');
        }
и при наведении див мелькает и невозможно нажать на ссылки=(
 

AmdY

Пью пиво
Команда форума
ой, тебе здесь вовсе нужно использовать один из toggle http://api.jquery.com/slideToggle/

p.s. спасибо. не обращал внимание что можно сразу на два события прописывать кэллбэк
 

blackcarrot

Новичок
подскажите как правильно повесить на лайв функцию toggle пожалуйста. По всякому делаю див мигает и ссылку нажать невозможно
принцип такой: есть слой .ramka и при наведении на него мышкой внутри него с position absolute появляется див, когда навожу на этот див начинается моргание, не навожу - нормально выезжает.
 

blackcarrot

Новичок
разобрался, сделал просто
PHP:
$(".ramka").live('mouseenter mouseleave', function(event) {
        if (event.type=='mouseenter') {
                $(this).find('div:first').slideDown('fast');
        }

        if (event.type=='mouseleave') {
              $('.ramka').find('div:first').slideUp('fast');
        }
        });
mouseover и mouseout почему-то не хотели работать
 
Сверху