2009-08-25 4 views
0

Помогите мне пожалуйста, я новичок в ajax и фреймворке jQuery, я создаю на jQuery страницу с разными плагинами на странице, но когда я получаю html-код из ajax и не клик-состояние, я использовал функцию жить(), но только помог на плагин удалить с редактированием плагин не работает, что может быть проблемой ...Сгенерированный HTML-код не доступен по клику

Это скрипт для редактирования

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.editme').editable('func/update_data.php', { 
      submitdata: { 
       type: "<?php echo $page_type?>" 
      }, 
      cancel: 'Cancel', 
      submit: 'OK', 
      tooltip: 'Click to edit...', 
      id: 'element_id', 
      name: 'update_value', 

     }); 
    }); 
</script> 

это сценарий для модального окна плагина и

$(document).ready(function() { 
    $('#basicModal input.basic, #basicModal a.basic').click(function (e) { 
     e.preventDefault(); 
     $('#basicModalContent').modal({ 
      onOpen: function (dialog) { 
       dialog.overlay.fadeIn('slow', function() { 
        dialog.data.hide(); 
        dialog.container.fadeIn('slow', function() { 
         dialog.data.slideDown('slow'); 
        }); 
       }); 
      }, 
      onClose: function (dialog) { 
       dialog.data.fadeOut('slow', function() { 
        dialog.container.hide('slow', function() { 
         $.modal.close(); 
        }); 
       }); 

      } 
     }); 

    }); 

    $("form#submit_wall").submit(function() { 
     var message_wall = $('#message_wall').attr('value'); 
     $('#message_wall').val(''); 
     $.ajax({ 
      type: "POST", 
      url: "func/insert.php", 
      data: "message_wall=" + message_wall, 
      dataType: "html", 
      complete: function() { 
       $('#basicModalContent').html('<div class="succes"><p>Successful</p> Your record was posted ! </div>'); 
       setTimeout(function() { 
        $.modal.close() 
       }, 
       1200); 
      }, 
      success: function (response) { 
       $("div#wall").html(response); 
       //$("div#wall").prepend("<span style='display:none'>"+message_wall+"</span>"); 
       //$("div#wall span").fadeIn(); 
      } 
     }); 
     return false; 
    }); 

}); 

это PHP код для генерации HTML

<?php if(isset($_POST[ 'message_wall'])){ 
    /* Remove HTML tag to prevent query injection */ 

    $message=strip_tags($_POST[ 'message_wall']); 
    echo '<div class="container_date"> 
      <span style="float: left;"> 
      <p class="editme" id="200">Sex</p> 
      </span> 
      <span style="float: right;" align="left"> 
      <a href="javascript:void(0)" id="200" class="delete">Delete</a> 
      </span> 
      <br class="clearfloat"> 
     </div>'; 
} ?> 

это первый раз для размещения на этом сайте, извините за ошибки, и мой английский

+0

исправьте форматирование сообщения –

+0

Пожалуйста, добавьте правильные теги кода, чтобы сделать это более разборчивым. – Killroy

+0

также было бы полезно, если бы вы предоставили ссылку на тестовую страницу. поможет SO сторонникам отладить это и выяснить проблему –

ответ

1

Это очень трудно понять, что вы хотите, но это выглядит мне нравится следующее:

Вы используете $ ('. editme'). editable() только один раз, когда происходит событие document.ready. editable() проходит через DOM в это время и делает все элементы с классом «editme» интерактивным.

Когда вы добавляете сообщение и получаете ответ от своего PHP-скрипта через AJAX, ответ содержит тег P с классом «editme». Но так как это происходит после того, как document.ready уволен, вам нужно будет запустить editable() снова на этом элементе новой страницы, чтобы сделать его интерактивным.

0

Большое спасибо, мне сейчас очень сложно понять сценарий, но я первый раз публикую здесь, и я понятия не имею, как спросить, ваш ответ помог мне, я еще раз повторил редактируемые() внутри php-скрипта, ответ ajax и работает !!! ... Большое спасибо снова!

Смежные вопросы