Выполнение PHP-скриптов под jquery и jscroll

0

Выполнение скрипта PHP под jquery и jscroll

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

Вот проблема:

  1. Я реализовал бесконечный прокрутки на основе кода с http://jscroll.com/ - он отлично работает
  2. Я реализовал jquery для удаления строк без обновления страницы, и он также работает, но только на первой странице, где включен код jquery. Когда страница расширяется jscroll, jquery как-то невидим и не работает.
  3. Я получил действительно базовые знания о javascript и jquery, поэтому я буду абрикосить, если кто-то может предоставить мне решение в виде коррекции кода.

Вот код jquery:

$(document).ready(function() {
   $("form[class=delMsg]").submit(function() {
      var  formID = $(this).attr('id');
      var formDetails = $('#'+formID);

      $.ajax({
        type: "POST",
        url: 'del.php',
        data: formDetails.serialize(),
        success: function (data) {    
            $('#wynik_'+formID).html(data);
        },
        error: function(jqXHR, text, error){
            $('#wynik_'+formID).html(error);   
        }
      });

      return false;
   });
});
  • 1
    Не могли бы вы опубликовать свой исходный код HTML? Если вы добавляете новые формы динамически, вам нужно использовать метод .on() , так как $("[form[class=delMsg]") добавит только слушатели к начальным элементам внутри DOM.
Теги:

2 ответа

0
Лучший ответ

Если вы добавляете form с class delMsg динамически, тогда вам нужно

Заменить ниже код

$("form[class=delMsg]").submit(function() {

С этим и попробуйте

$(document).on('submit', "form[class=delMsg]", function() { // Instead of document use the container id or class in which you are adding dynamic content

Пример:

HTML

<div id="container">
    <form class="delMsg">
        <input type="submit" value="Submit 0"/>
    </form>
</div>
<button id="add-form">Add Form</button>

JS

$(document).ready(function() {
    $(document).on('submit', "form[class=delMsg]", function() {
        alert('form ' + $("form[class=delMsg]").index($(this)));
        return false;
    });

    $('#add-form').click(function() {
        $('#container').append('<form class="delMsg"><input type="submit" value="Submit ' + ($("form[class=delMsg]").length) +  '"></form>');
    });
});

Демо-ссылка

  • 0
    Я думаю, что вы имеете в виду наоборот: $(document).on('submit', 'form[class=delMsg]', function(e){});
  • 0
    Спасибо @afEkenholm, ответ обновлен
Показать ещё 5 комментариев
0

он, наконец, работает, и он отлично работает !!! Итак... большое спасибо за вашу помощь :) Я хотел бы объяснить, почему он не работал в первый раз. После небольшого расследования я обнаружил, что если я поместил это определение формы перед другим определением формы (с другим идентификатором, классом и использованным для других целей) ранее в коде страницы, он начинает работать. Я также обнаружил, что эта две формы являются предметом одного div, но первая форма была задана таким странным образом, как: <from class=comment><div class=table_r><input type=submit></form><form class=delMsg><input type=submit></form></div> Таким образом, определение первой формы было вне этого самого div. Когда я переместил <form class=comment> внутри div, он начинает работать именно так :) Может быть, вы узнаете, почему он ведет себя таким образом - для меня это волшебство :)

Еще раз спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню