Hacky way без каких-либо изменений html разметка:
- Добавить
contenteditable
атрибут к контейнеру. - При нажатии на выбранный узел через
document.getSelection()
и проверь. - Если выбранный текстовый узел является именно тем узлом, делайте что хотите.
- Сброс выбора.
http://jsfiddle.net/quqtk8r6/2/
var el = document.getElementById("container")
el.setAttribute("contenteditable", "true")
el.style.cursor = "pointer"
el.style.outline = "none"
el.addEventListener("click", function () {
var selection = document.getSelection(),
node = selection.baseNode
selection.removeAllRanges()
if (node.nodeType == 3 && node.parentNode == el) {
alert("someText are clicked")
}
})
el.addEventListener("keydown", function (event) {
event.preventDefault()
return false
})
PS: это скорее пища для размышлений, чем реальная рекомендация.