При вызывании функции JavaScript, как я устанавливаю пользовательское значение “этого”?

в строке Python есть метод splitline

msg = "Bob Smith\nJane Doe\nJane,\nPlease order more widgets\nThanks,\nBob\n"
msg_splitlines = msg.splitlines()
headerTo = msg_splitlines[0]
headerFrom= msg_splitlines[1]
sendMessage(headerTo,headerFrom,msg)
5
задан Charles 27 May 2009 в 18:05
поделиться

5 ответов

Используйте ] применить позвонить .

handleEvent.call(this, e);
12
ответ дан 18 December 2019 в 09:10
поделиться

Используйте

e.target
1
ответ дан 18 December 2019 в 09:10
поделиться

Я бы посоветовал вам пересмотреть факторинг работает как плагин jQuery.

Но вот быстрое исправление:

handleEvent.apply(this,e) //transfers this from one scope, to another
1
ответ дан 18 December 2019 в 09:10
поделиться

Просто параметризуйте интересующую вас функцию:

function doStuff(el) {
    $(el).removeClass("sad").addClass("happy");
}

function handleEvent(event) {
    doStuff(this);
}

$("a.sad").click(handleEvent); // in this case, "this" is the anchor clicked

function differentEvent(event) {
    $("input.sad").keydown(e) {
        doSomeOtherProcessing();
        doStuff(this);
    }
}
4
ответ дан 18 December 2019 в 09:10
поделиться

Если вы просто хотите вызвать отдельный обработчик событий, как если бы он запускался нормально, то apply / call будет работать нормально. Однако, в зависимости от ваших потребностей, может оказаться более надежным использовать версию функции jQuery click () без аргументов, которая будет запускать все обработчики кликов для этого элемента:

function differentEvent(event) {
    $("input.sad").keydown(e) {
        doSomeOtherProcessing();
        $(this).click(); // simulate a click
    }
}
]
0
ответ дан 18 December 2019 в 09:10
поделиться
Другие вопросы по тегам:

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