Jquery Slimjet делегирование событий не работает - PullRequest
0 голосов
/ 12 марта 2019

опять у меня огромная проблема. Первым делом я использую Slimjet Web Browser с Tampermonkey для Chrome. Я не могу использовать в скрипте $('.class:first') или $('.class:contains(...)') и т. Д., Потому что всегда получаю ошибку

TypeError: V [g] .exec не является функцией

Кто-то знает почему?

Теперь я пытаюсь добавить в div конкретную ссылку на класс, которая что-то делает после нажатия на нее. Я пробую все, но событие срабатывает только один раз, если оно работает ...

var collapse1 = $('<center>')
    .html($('<a>')
    .attr('id', 'alli1')
    .attr('href', '#')
    .text("Kliknij tutaj aby rozwinąć opis"));

$('.clan-desc').first().html(collapse1);

$($('.clan-desc').get(0)).on('click', '#alli1', function(event) {
  if ($(this).text() === "Kliknij tutaj aby rozwinąć opis") {
    $('.clan-desc').first().html(alliance_txt1).append(this);
    $(this).text("Kliknij tutaj aby zwinąć opis");
  } else {
    $(this).text("Kliknij tutaj aby rozwinąć opis");
  }
  event.preventDefault();
});

Когда я так поступаю, у меня появляется такая же ошибка, как и вверх. Ofc я пытался $($('.clan-desc').first()).on('click', '#alli1', function(event){...}); или же $(document).on('click', '#alli1', function(event){...}); Всегда одна и та же ошибка.

1 Ответ

0 голосов
/ 12 марта 2019
        function handler(event){
            if ($('#alli1').text()==="Kliknij tutaj aby zwinąć opis"){
                $('.clan-desc').first().html('').append(collapse1);
                $('#alli1').text("Kliknij tutaj aby rozwinąć opis");
            }else{
                $('.clan-desc').first().html(alliance_txt1).append(collapse1);
                $('#alli1').text("Kliknij tutaj aby zwinąć opis");
            }
            event.preventDefault();
        }
        var collapse1 = $('<center>').html($('<a>').attr('id', 'alli1').attr('href',    '#').text("Kliknij tutaj aby rozwinąć opis"));
        $('.clan-desc').first().html('').append(function(){
        return collapse1;   
        }).on('click', handler);

Я пытался сделать что-то подобное. Это работает, но я хочу: .on('click', '#alli1', handler);

...