вот и моя проблема. Я регистрирую событие dblclick для некоторых тегов p, когда пользователь дважды щелкает этот тег и может редактировать содержимое. Пока все хорошо, единственная проблема, если тег p содержит другие теги и пользователь нажимает на него, только содержимое этого тега является редактируемым.
, чтобы уточнить немного, вот пример
<html>
<head>
<title>Test Event</title>
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.3");
google.setOnLoadCallback(function() {
$(function(){
$('#catchme').bind('dblclick', function(e){
alert(e.target.innerHTML);
});
});
});
</script>
<style>
.bk_yellow {
background-color: yellow;
}
</style>
</head>
<body>
<p id="catchme">Lorem ipsum dolor sit amet, <span class="bk_yellow">consectetur adipiscing elit. Phasellus</span> tempor nisl a velit commodo pellentesque. Pellentesque vitae posuere quam. Ut vitae justo nec quam bibendum placerat eu et diam. Morbi nec tellus sit amet libero lacinia vestibulum. Donec vulputate libero eget enim rhoncus dapibus. Sed mattis lobortis est sit amet facilisis. Proin porta lobortis commodo. Sed quis erat a elit malesuada tincidunt at in dui. Nunc sit amet pellentesque odio. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus dictum justo sed enim pharetra sollicitudin. Cras at tortor ante, at interdum nisi. Proin pulvinar sodales imperdiet. Aliquam mi ipsum, suscipit tincidunt lobortis eget, venenatis nec lorem. Sed euismod enim volutpat nisi vulputate iaculis. </p>
</body>
</html>
Если вы нажмете на не желтый текст, то все в порядке, если вы нажмете на желтый, будет сброшено только содержимое диапазона. Есть ли способ заставить dom действительно ссылаться на элемент, событие которого было зарегистрировано?
Я использую эту технику в нашей CMS для домашнего браузера, и эта ошибка немного раздражает.
Полагаю, если бы не было способа избежать такого поведения, мне пришлось бы каким-то образом прикрепить элемент к событиям.
PS: в примере используется jquery, но в реальной CMS используется ExtJS, поэтому любой ответ, специфичный для jquery, не будет в порядке.