Portál AbcLinuxu, 12. května 2025 05:05
option
. Na dynamicky pridany option
se vaze event click s nejakou operaci. Ve vsech prohlizecich funguje pouziti event handleru "on", ale IEcka to ignoruji. Kod nize
kod a ukazka na jsbin
bind
, ale ten se chova tak ze pak v $(this).text()
je body - jako cely kod a to ve vsech browserech. Damy prominou, panove pochopi, zasra.y IEcka.
Tak jsem zkusil a bohuzel. Ani onclick do elementu option nepomohlo.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script src="jquery-1.10.2.min.js"></script>
<title>ie test jquery</title>
</head>
<body>
<script type="text/javascript">
var n=0;
$(function() {
$("#clickMe").click(function(){
$("#slct").append("<option onclick='alert(this.value)'>Item "+n+"</option>");
n++;
});
});
</script>
<div id="clickMe">Clickni me</div>
<select id="slct" style="width: 150px;" size='3'>
</select>
</body>
</html>
Chova se to porad stejne vsechny browsery delaji co maji jen IE zase nic. Zacinam z toho byt nestastny.
var n=0; $(document).ready(function() { $('body') .on('click', "#clickMe", function() { $("#slct").append('<option>Item '+n+'</option>'); n++; }) .on('click', '#slct', function() { alert($(this).find(':selected').text()); }) ;sice to asi nebude fungovat tak jak si prejes, pokud se shiftem vyberes vice polozek, ale treba to bude stacit.. Jak se zda, tak option v IE nevyhazuje click event..
var n=0; var options = []; var lastOption; $(document).ready(function() { $('body') .on('click', "#clickMe", function() { $("#slct").append('<option>Item '+n+'</option>'); n++; }) .on('click', '#slct', function() { var selected = $(this).find(':selected'); lastOption = selected.not(options); options = selected; alert(lastOption.text()); }) ; });Ale tady je zas problem, kdyz je vybrano vice polozek a pak odznacis jednu..
Jezismarjaaa dekuji toto opravdu dela to co jsem potreboval:
cely kod:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script src="jquery-1.10.2.min.js"></script>
<title>ie test jquery</title>
</head>
<body>
<script type="text/javascript">
var n=0;
$(function() {
$("#clickMe").click(function() {
$("#slct").append('<option>Item '+n+'</option>');
n++;
});
$('body').on('click', '#slct', function() {
alert($(this).find(':selected').text());
});
});
</script>
<div id="clickMe">Clickni me</div>
<select id="slct" style="width: 150px;" size='3'>
</select>
</body>
</html>
delegate
a on
jsou uplne ty same veci, jen s jinym poradim parametru..
uryvek z kodu jquery:
delegate: function( selector, types, data, fn ) { return this.on( types, selector, data, fn ); },samozrejme je rozdil zda je
on
volan:
$('body').on('click', '#mujElement', function() { // funkce je delegovana }) $('#mujElement').on('click', function() { // funkce je bindovana })
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.