Вы можете попытаться понять это, следуя ниже
// whatever here it is, function or fat arrow or literally object declare
// in short, a pair of curly braces should be appeared here, eg:
function f() {
// the 'this' here is the 'this' in fat arrow function below, they are
// bind together right here
// if 'this' is meaningful here, eg. this === awesomeObject is true
console.log(this) // [object awesomeObject]
let a = (...param) => {
// 'this is meaningful here too.
console.log(this) // [object awesomeObject]
}
, поэтому «это» в функции толстой стрелки не связано, означает, что вы не можете заставить что-либо связываться с этим «здесь». применить не будет, .call не будет, .bind не будет. 'this' в функции fat arrow привязывается, когда вы записываете текст кода в текстовом редакторе. «Это» в функции толстой стрелки здесь буквально значимо. Что ваш код писать здесь, в текстовом редакторе, то, что ваше приложение работает там в repl. То, что «это» связано с жирным заключением, никогда не изменится, если вы не измените его в текстовом редакторе. Извините за мой пул English ...
Да, я соглашаюсь с Seb, это - хорошая практика, по-моему, чтобы всегда развязать прежде, чем связать, если Вы не уверены, что нет, в настоящее время связывает с Вашим элементом, который Вы хотите. Можно удвоиться, связывают материал на несчастном случае путем простого использования '.submit', '.click', '.mouseover', и т.д.... функционирует.
Выработайте привычку выполнения этого (никогда сбои для меня):
$('.some_element').unbind('submit').bind('submit',function() {
// do stuff here...
});
... вместо:
$('.some_element').submit(function() {
// do stuff here...
});
Не уверенный в этом странном поведении, но кажется, что развязывание отправлять событие добьется цели.
Так, прежде, чем выполнить сценарий, возвращенный $ .ajax вызов, выполняет это:
$('.submit_to_remote').unbind("submit");
, Который должен удалить предыдущую привязку и оставить просто новую.