Re: Не можу добратись до елемента з тегом div та відповідним класом
Мені просто цікаво, звідки цей файл класу comment.class.php знає про існування файлу script.js і про наявність у ньому функції someFunction.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → JavaScript, TypeScript, ECMAScript → Не можу добратись до елемента з тегом div та відповідним класом
Для відправлення відповіді ви повинні увійти або зареєструватися
Мені просто цікаво, звідки цей файл класу comment.class.php знає про існування файлу script.js і про наявність у ньому функції someFunction.
Вітання всім!
Сьогодні натрапив на таку ситуацію:
Якщо я у класі повідомлення використовую атрибут "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.
Очевидно:
...alert(read_message(this.id));...
...
function read_message(read_message_id){
  var author_name = ...this має сенс тільки в функції об'єкту, а не в викликаній з неї.
Дякую, шановний koala 
Щось я зашився.. Не помітив очевидного. А це єдиний варіант, чи можна у 
onclick="read_message(this.id);"використати метод $.post чи $.get?
чи можна у
onclick="read_message(this.id);"використати метод $.post чи $.get?
Це не програмерський підхід - питати такі речі. Спробуйте - дізнаєтеся. Побачите щось неочікуване - питайте.
П.С. Можна.
Наступні граблі, на які я наступив при переході сторінки на 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, видалення без перезавантаження сторінки не відбувається.  (Видалення у базі відбувається, але це повідомлення не ховається відразу без перезавантаження).
Так треба ручками приховувати елемент сторінки, а ви як думали?
Та я так і думав=) Але як це зробити?
Спочатку це працювало.
Перепрошую, неуважно подивився: ви ніби це й робите в
commentContainer.slideUp('slow', function() {$(this).remove();});Тоді треба розбиратися...
У якості commentContainer виступає comment_list.
Але, якщо у першому випадку працювало справно видалення, коли виводжу контейнер алертом, повідомлення відображає [object Object].
Тепер повертає це ж значення, але видалення відбувається у базі, але вже не видаляється зі списку без перезавантаження сторінки
commentContainer.slideUp('slow', function() {$(this.id /*або this.className або щось інше з доп. чого можна було б вибрати елемент*/).remove();});Для відправлення відповіді ви повинні увійти або зареєструватися