Uczę się/przypominam sobie jQuery. Mam starą książkę w której zdążyłem zauważyć, że kod dotyczy wersji jQuery jakoś przed 1.7 i pełno przestarzałych względem 2+ funkcji. Wie ktoś dlaczego ten kod nie działa? Po prostu jest sam html i brak reakcji na kilkanie w buttony. Możliwe, że wkleiłem fragmenty js w nieodpowiednie miejsca, bo w książce są pocięte. Z góry dzięki za pomoc.
<html>
<head>
<title>Manipulowanie tekstem zaznaczonym przez użytkownika</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
p { color:red;font-size:17px;width:670px;}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function getPositions()
{
var startPosition = endPosition = 0;
var element = document.getElementById('selectable');
if (document.selection)
{
//dla Internet Explorera
var range = document.selection.createRange();
var drange = range.duplicate();
drange.moveToElementText(element);
drange.setEndPoint("EndToEnd", range);
startPosition = drange.text.length - range.text.length;
endPosition = startPosition + range.text.length;
}
else if (window.getSelection)
{
//dla Firefoksa, Chrome, Safari etc.
startPosition = element.selectionStart;
endPosition = element.selectionEnd;
}
return {'start': startPosition, 'end': endPosition};
}
$('#apply').click(function()
{
var html = $('#container').html($('#selectable').val());
});
$('.button').click(function()
{
var positions = getPositions();
if(positions.start == positions.end)
{
return false;
}
var tag = $(this).val();
var textOnPage = $('#selectable').val();
var startString = textOnPage.substr(0, positions.start);
var targetString = textOnPage.substr(positions.start, positions.end - positions.start);
var formattedString = "<" + tag +">" + targetString +"</" + tag +">";
var endString = textOnPage.substr(positions.end);
$('#selectable').text(startString + formattedString + endString);
});
</script>
</head>
<body>
<input type="button" value="b" id="bold" class="button">
<input type="button" value="i" id="italics" class="button">
<input type="button" value="u" id="underline" class="button">
<input type="button" id="apply" value="Nałóż HTML">
<div>
<textarea id="selectable" rows="20" cols="80">Szlachetne zdrowie,
nikt się nie dowie, jako smakujesz, aż się zepsujesz.</textarea>
</div>
<p id="container"></p>
</body>
</html>
dodanie znaczników <code class="html"> i <code class="javascript">
- @furious programming