21

Re: Не можу добратись до елемента з тегом div та відповідним класом

Мені просто цікаво, звідки цей файл класу comment.class.php знає про існування файлу script.js і про наявність у ньому функції someFunction.

22

Re: Не можу добратись до елемента з тегом div та відповідним класом

Вітання всім!
Сьогодні натрапив на таку ситуацію:
Якщо я у класі повідомлення використовую атрибут "onclick", можу отримати id цього повідомлення та виконати функцію:
onclick="alert(this.id);alert(read_message());", де

function read_message(){
        var read_message_id = this.id;
        var author_name = document.getElementById('author').value;
        alert('Повідомлення ' + read_message_id + " відмічається як прочитане, якщо ви - отримувач");
        $.ajax({    
            url: 'read_message.php',
            type: 'POST',
            cache: 'false',
            data: {
                            read_id: read_message_id,
                            author_name: author_name
                        }
        });
        return false;
};

Це, наприклад, видасть "50" та
"Повідомлення undefined відмічається як прочитане, якщо ви - отримувач"
Питання наступне: як передати цей id (50) у функцію read_message(), так як

var read_message_id = this.id;

не визначає id.

23

Re: Не можу добратись до елемента з тегом div та відповідним класом

Очевидно:

...alert(read_message(this.id));...
...
function read_message(read_message_id){
  var author_name = ...

this має сенс тільки в функції об'єкту, а не в викликаній з неї.

Подякували: rozmath1

24 Востаннє редагувалося rozmath (21.05.2013 11:43:55)

Re: Не можу добратись до елемента з тегом div та відповідним класом

Дякую, шановний koala =)
Щось я зашився.. Не помітив очевидного. А це єдиний варіант, чи можна у

onclick="read_message(this.id);"

використати метод $.post чи $.get?

25

Re: Не можу добратись до елемента з тегом div та відповідним класом

rozmath написав:

чи можна у

onclick="read_message(this.id);"

використати метод $.post чи $.get?

Це не програмерський підхід - питати такі речі. Спробуйте - дізнаєтеся. Побачите щось неочікуване - питайте.
П.С. Можна.

26

Re: Не можу добратись до елемента з тегом div та відповідним класом

Наступні граблі, на які я наступив при переході сторінки на jQuery:
Для видалення повідомлення із списку повідомлень переписки, служив наступний код:

function delete_message(delete_message_id){
        var commentContainer = $(this).parent();
        var author_name = document.getElementById('author').value;
        
        alert('Ви видалили повідомлення ' + delete_message_id + ' ' + author_name + ' ' + commentContainer);
        $.ajax({    
            url: 'delete_message.php',
            type: 'POST',
            cache: 'false',
            data: {
                            delete_id: delete_message_id,
                            author_name: author_name
                        },
            success: function(){
                commentContainer.slideUp('slow', function() {$(this).remove();});
            }
        });
        return false;
};

Це працювало, коли повідомлення були видимі при перегляді джерела сторінки.
Тепер, коли вони генеруються завдяки jQuery, видалення без перезавантаження сторінки не відбувається.  (Видалення у базі відбувається, але це повідомлення не ховається відразу без перезавантаження).

27

Re: Не можу добратись до елемента з тегом div та відповідним класом

Так треба ручками приховувати елемент сторінки, а ви як думали?

28

Re: Не можу добратись до елемента з тегом div та відповідним класом

Та я так і думав=) Але як це зробити?
Спочатку це працювало.

29

Re: Не можу добратись до елемента з тегом div та відповідним класом

Перепрошую, неуважно подивився: ви ніби це й робите в

commentContainer.slideUp('slow', function() {$(this).remove();});

Тоді треба розбиратися...

30

Re: Не можу добратись до елемента з тегом div та відповідним класом

У якості commentContainer виступає comment_list.
Але, якщо у першому випадку працювало справно видалення, коли виводжу контейнер алертом, повідомлення відображає [object Object].
Тепер повертає це ж значення, але видалення відбувається у базі, але вже не видаляється зі списку без перезавантаження сторінки

31

Re: Не можу добратись до елемента з тегом div та відповідним класом

commentContainer.slideUp('slow', function() {$(this.id /*або this.className або щось інше з доп. чого можна було б вибрати елемент*/).remove();});