2016-12-04 55 views
1

我有多個CONTENTEDITABLE分度onkeypress事件象下面這樣:onkeypress事件認識到當前的div

JsFiddle

<script> 
function hadd(event){ 
     var val = event.charCode;    
     if(val == 36){//$ sign 
      var current = $(this);    
      console.log("val_c: " + val); 
      console.log("rh: " + current);   
      current.append("correct"); 
     }   
    }; 
</script> 

<div class="example" contenteditable="true" tabindex="-1" onkeypress="hadd(event);">Test</div> 
<div class="example" contenteditable="true" tabindex="-1" onkeypress="hadd(event);">Test_2</div> 
<div class="example" contenteditable="true" tabindex="-1" onkeypress="hadd(event);">Test_3</div> 

我要的是爲hadd(event)承認 「$(this)」。我應該做什麼改變?因爲我得到了createDocumentFragement錯誤。

謝謝!

回答

1

您需要添加第二個參數並傳遞當前元素。

onkeypress="hadd(event, this);" 

並在代碼:

function hadd(event, which) { 
    current = $(which); 
    //... 
} 

還是以簡單的方式,你也可以使用:

function hadd(event) { 
    current = $(event.target); 
    //... 
} 

工作小提琴:https://jsfiddle.net/wxwz7bab/

+0

沒問題。我還有一個問題,你能否檢查一下你是否可以幫忙?它關於contenteditable(這樣的痛苦)..大聲笑http://stackoverflow.com/questions/40965018/contenteditable-enter-behaviour –

1

變化

var current = $(this); 

var current = $(event.target); 
1
function hadd(event) { 
    var current = $(event.target); 
    //... 
}