2013-08-30 2 views
0

У меня есть ячейки таблицы, как,фокусное событие не работает?

<td> 
    <div style="position:relative"> 
     <div class="editable" contenteditable="true"> 
     <br> 
     </div> 
    </div> 
</td> 

Я регистрации события фокуса на редактируемой DIV как,

$(".editable").on("focus", function() { 
     alert("focus event is called"); 
    }); 

, но это не работает. пожалуйста, помогите и заблаговременно.

+0

убедитесь, что вы вызываете его в dom ready –

+1

см. Http://jsfiddle.net/arunpjohny/v2QmM/ –

ответ

0

focus Чтобы работать на div, он должен иметь tabindex.

Так что ваш пример работать,

<div class="editable" contenteditable="true" tabindex='1'> 
2

попробовать

$(document).on("focus",".editable", function() { 
     alert("focus event is called"); 
    }); 

FIDDLE

+2

фокусное событие не пузырится, поэтому делегирование делегаций не будет работать ... вам нужно использовать [focusin] (https://developer.mozilla.org/en-US/docs/Web/Reference/Events/focusin) –

+0

@ArunPJohny попробуйте http://jsfiddle.net/kanishka_bandara/RfDU7/ –

0
<div style="position:relative"> 
    <div contenteditable="true" style="width:100px;height:100px;" class="editable"> 
    </div> 
</div> 
apply some css 
0

@OP - исходный код работает нормально - может быть, вы получаете много предупреждений (нажатие на кнопку «ОК» предупреждает о размытии и повторной фокусировке на div), а затем принимает предложение браузера на t Убрать предупреждения?

Попробуйте другой способ проверки того, что событие обнаружено:

HTML:

<div style="position:relative"> 
    <div class="editable" style="border : 1px solid black" contenteditable="true"> 
    <br> 
    </div> 
</div> 

      <textarea id="area"></textarea> 

JS:

$(".editable").on("focus", function() { 
    $("#area").html("focused"); 
}); 

$(".editable").on("blur", function() { 
    $("#area").html("blurred"); 
}); 

Попробуйте здесь: http://jsfiddle.net/cuYBD/

Щелкните и из divs, и вы должны увидеть результат, который вы искали.

Смежные вопросы