2017-08-30 1 views
1

Ich dachte, ich könnte dies tun:Der Versuch, diese mit Hilfe der Pfeil Syntax neu zu schreiben

$('body').on('focus', '[contenteditable]', e => { 
     var self = $(e) 
     self.data('before', self.html()) 
     return self 
}) 

aber es sagt: "nicht Eigentum lesen 'createDocumentFragment' undefinierter"

$('body').on('focus', '[contenteditable]', myfocus) 
 

 
function myfocus() { 
 
    var self = $(this) 
 
    self.data('before', self.html()) 
 
    return self 
 
}
p { 
 
cursor:pointer 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p contenteditable>Click here to edit</p>

Antwort

2

Sie müssen $(e.target) verwenden;

In myfocus Funktion this ist eine Referenz, die auf den DOM beziehtelement, die die event ausgelöst.

In der jQuery-Funktion, this bezieht sich auf die event erstellt, so können Sie das DOM Element event.target mit zuzugreifen.

event.target Eigenschaft gibt das Element zurück, das die event ausgelöst hat.

$('body').on('focus', '[contenteditable]', (e) => { 
 
     var self = $(e.target); 
 
     self.data('before', self.html()) 
 
     return self; 
 
})
p { 
 
cursor:pointer 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p contenteditable>Click here to edit</p>

+0

Nun, es ist mehr eine Referenz als einen Zeiger. – PeterMader

+0

@PeterMader, ja, du hast Recht. 'Zeiger' wird normalerweise in' c' und 'C++' Sprachen verwendet. –

Verwandte Themen