Эквивалент jquery live [duplicate]

Это трассировка стека упомянутого исключения

        at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6149)
        at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:843)
        at android.view.View.requestLayout(View.java:16474)
        at android.view.View.requestLayout(View.java:16474)
        at android.view.View.requestLayout(View.java:16474)
        at android.view.View.requestLayout(View.java:16474)
        at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:352)
        at android.view.View.requestLayout(View.java:16474)
        at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:352)
        at android.view.View.setFlags(View.java:8938)
        at android.view.View.setVisibility(View.java:6066)

Итак, если вы идете и копаете, вы узнаете

void checkThread() {
    if (mThread != Thread.currentThread()) {
        throw new CalledFromWrongThreadException(
                "Only the original thread that created a view hierarchy can touch its views.");
    }
}

Где mThread инициализируется в конструкторе, как показано ниже

mThread = Thread.currentThread();

Все, что я хочу сказать, когда мы создали конкретное представление, мы создали его в потоке пользовательского интерфейса, а затем попытаемся изменить его в Worker Thread.

Мы можем проверить его ниже фрагмент кода

Thread.currentThread().getName()

, когда мы раздуваем макет и позже, когда вы получаете исключение.

7
задан Brandon Orth 8 January 2013 в 01:14
поделиться

3 ответа

$(document).ready(function(){
        $(document.body).on('click', ".OpenPopup", function(e){
            alert('test .OpenPopup');
            // do something
            return false;
        });
        $(document.body).on('click', ".EditIcon", function(){
            alert('test .EditIcon');
            // do something
            $("#ABC").html('<div class="EditIcon OpenPopup" pwidth="800" pheight="500" ptitle="Edit Text">click here again</div>');
        });
    });
17
ответ дан Dhofca 27 August 2018 в 00:08
поделиться

После @Dhofca это действительно сработало. Я просто показываю пример, который я пробовал с ключевым словом this.

$(document.body).on('click', ".query-result table tr", function () {
    var el = $(this);
    el.closest('table').find('tr').removeClass('dotted');
    el.addClass('dotted');
});
0
ответ дан Asif Ashraf 27 August 2018 в 00:08
поделиться

.on() может использоваться с или без делегирования , ниже приведен пример функции on () с использованием делегирования.

$("#ABC").on('click', ".OpenPopup", function(e){

http: // jsfiddle .net / BmEZv / 1 /

2
ответ дан Musa 27 August 2018 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: