запуск скрипта с помощью идентификатора
<textarea id="message" onKeyPress="return jilgeoves(this,event,'.geojilves');"></textarea> <script type="text/javascript"> function imgjilves(t,th){var a=$(t).find("input.vesjilgeo");var lo=$($(th?th:a).find("input.vesjilgeo")).is(":checked");var e=t;lo?$(e).animate({"background-position-x":"0px","title":"ინგლისური კლავიატურის ჩართვა"},150,"linear"):$(e).animate({"background-position-x":"-28px","title":"ქართული კლავიატურის ჩართვა"},150,"linear");$(a).prop("checked",lo)}function jilgeoves(t,e,l){var checkbox=$("label"+l+" input.vesjilgeo");en={a:"ა",A:"ა",b:"ბ",B:"ბ",g:"გ",G:"გ",d:"დ",D:"დ",e:"ე",E:"ე",v:"ვ",V:"ვ",z:"ზ",Z:"ძ",t:"ტ",T:"თ",i:"ი",I:"ი",k:"კ",K:"კ",l:"ლ",L:"ლ",m:"მ",M:"მ",n:"ნ",N:"ნ",o:"ო",O:"ო",p:"პ",P:"პ",j:"ჯ",J:"ჟ",r:"რ",R:"ღ",s:"ს",S:"შ",u:"უ",U:"უ",f:"ფ",F:"ფ",q:"ქ",Q:"ქ",y:"ყ",Y:"ყ",c:"ც",C:"ჩ",w:"წ",W:"ჭ",x:"ხ",X:"ხ",h:"ჰ",H:"ჰ"};var e=e||window.event,c=e.keyCode||e.which,s=String.fromCharCode(c);if("`"==s)return checkbox.prop("checked",!checkbox.prop("checked")),imgjilves(l,l),!1;var r=eval("en."+s);return $(checkbox).is(":checked")?void 0==r?!0:($(t).val($(t).val()+r),!1):!0} </script> <label title="ინგლისური კლავიატურის ჩართვა" class="geojilves" onclick="imgjilves('.geojilves',this)" style="float:left; width:22px; height:18px; cursor:pointer; background:url('http://jil.do.am/che/001/img/001/geus.png') 0px 50% no-repeat;"><input checked="checked" style="display:none;" class="vesjilgeo" type="checkbox"></label> как видите скрипт запускается этим onKeyPress="return jilgeoves(this,event,'.geojilves');" пожалуйста подскажите как сделать чтобы скрипт запускался по нажатию на блок с иденификатором id="message" Спасибо |
Цитата:
|
BETEPAH, а как сделать чтоб onclick или onfocus срабатывал на id="message"
|
я делал так но не то
$("#message").click(function(){return jilgeoves(this,event,'.geojilves');}); |
Цитата:
Цитата:
|
nesnayka, а потому что скрипт не запускается посмотрите сами
|
Цитата:
<textarea id="message" onKeyPress="return jilgeoves(this,event,'.geojilves');"></textarea> <script type="text/javascript"> function imgjilves(t,th){ var a=$(t).find("input.vesjilgeo"); var lo=$($(th?th:a).find("input.vesjilgeo")).is(":checked"); var e=t;lo?$(e).animate({"background-position-x":"0px","title":"ინგლისური კლავიატურის ჩართვა"},150,"linear"):$(e).animate({"background-position-x":"-28px","title":"ქართული კლავიატურის ჩართვა"},150,"linear");$(a).prop("checked",lo); } function jilgeoves(t,e,l){ var checkbox=$("label"+l+" input.vesjilgeo"); en={a:"ა",A:"ა",b:"ბ",B:"ბ",g:"გ",G:"გ",d:"დ",D:"დ",e:"ე",E:"ე",v:"ვ",V:"ვ",z:"ზ",Z:"ძ",t:"ტ",T:"თ",i:"ი",I:"ი",k:"კ",K:"კ",l:"ლ",L:"ლ",m:"მ",M:"მ",n:"ნ",N:"ნ",o:"ო",O:"ო",p:"პ",P:"პ",j:"ჯ",J:"ჟ",r:"რ",R:"ღ",s:"ს",S:"შ",u:"უ",U:"უ",f:"ფ",F:"ფ",q:"ქ",Q:"ქ",y:"ყ",Y:"ყ",c:"ც",C:"ჩ",w:"წ",W:"ჭ",x:"ხ",X:"ხ",h:"ჰ",H:"ჰ"}; var e=e||window.event,c=e.keyCode||e.which,s=String.fromCharCode(c); if("`"==s)return checkbox.prop("checked",!checkbox.prop("checked")),imgjilves(l,l),!1; var r=eval("en."+s); return $(checkbox).is(":checked")?void 0==r?!0:($(t).val($(t).val()+r),!1):!0; } $("#message").click(function(){alert(1);}); </script> <label title="ინგლისური კლავიატურის ჩართვა" class="geojilves" onclick="imgjilves('.geojilves',this)" style="float:left; width:22px; height:18px; cursor:pointer; background:url('http://jil.do.am/che/001/img/001/geus.png') 0px 50% no-repeat;"><input checked="checked" style="display:none;" class="vesjilgeo" type="checkbox"></label> Вполне себе нормально работает. При клике по texarea выводит 1. Но кусок $("#message").click(function(){return jilgeoves(this,event,'.geojilves');}); не будет работать сам по себе, т.к. ф-ция jilgeoves отслеживает нажатия клавиш и априори должна быть привязана к обработчику onKeyPress или onKeyDown/onKeyUp. Давайте Вы нам расскажете, что вы хотите сделать, вообще. :) |
я хочу сделать так чтобы данная функция переключения языков запускалась с помощью идентификатора #message так как я хочу поставить этот скрипт в личных сообщениях на ucoz а там нет textarea чтобы добавить в нём onKeyPress="return jilgeoves(this,event,'.geojilves');"
|
Тогда вот так (стоит заметить, что аргументы у ф-ции я поубирал и присвоил нужным переменным значение внутри ф-ции):
<textarea id="message"></textarea> <script type="text/javascript"> function imgjilves(t,th){ var a=$(t).find("input.vesjilgeo"); var lo=$($(th?th:a).find("input.vesjilgeo")).is(":checked"); var e=t;lo?$(e).animate({"background-position-x":"0px","title":"ინგლისური კლავიატურის ჩართვა"},150,"linear"):$(e).animate({"background-position-x":"-28px","title":"ქართული კლავიატურის ჩართვა"},150,"linear");$(a).prop("checked",lo); } function jilgeoves(event){ var t = document.getElementById('message'); var e = event; var l = '.geojilves'; var checkbox=$("label"+l+" input.vesjilgeo"); en={a:"ა",A:"ა",b:"ბ",B:"ბ",g:"გ",G:"გ",d:"დ",D:"დ",e:"ე",E:"ე",v:"ვ",V:"ვ",z:"ზ",Z:"ძ",t:"ტ",T:"თ",i:"ი",I:"ი",k:"კ",K:"კ",l:"ლ",L:"ლ",m:"მ",M:"მ",n:"ნ",N:"ნ",o:"ო",O:"ო",p:"პ",P:"პ",j:"ჯ",J:"ჟ",r:"რ",R:"ღ",s:"ს",S:"შ",u:"უ",U:"უ",f:"ფ",F:"ფ",q:"ქ",Q:"ქ",y:"ყ",Y:"ყ",c:"ც",C:"ჩ",w:"წ",W:"ჭ",x:"ხ",X:"ხ",h:"ჰ",H:"ჰ"}; var e=e||window.event,c=e.keyCode||e.which,s=String.fromCharCode(c); if("`"==s)return checkbox.prop("checked",!checkbox.prop("checked")),imgjilves(l,l),!1; var r=eval("en."+s); return $(checkbox).is(":checked")?void 0==r?!0:($(t).val($(t).val()+r),!1):!0; } window.onload=function(){ var h = document.getElementById('message'); h.onkeypress = jilgeoves; } </script> <label title="ინგლისური კლავიატურის ჩართვა" class="geojilves" onclick="imgjilves('.geojilves',this)" style="float:left; width:22px; height:18px; cursor:pointer; background:url('http://jil.do.am/che/001/img/001/geus.png') 0px 50% no-repeat;"><input checked="checked" style="display:none;" class="vesjilgeo" type="checkbox"></label> Теперь этому скрипту глубоко пофиг на все, лишь бы на странице был элемент с id="message", в котором он будет менять аглицкие буквы на грузинские и перед всем этим делом нажали грузинский флаг. )) |
nesnayka, большое спасибо всё как всегда в точку думаю тему можно закрывать
да ещё на по следок я заменил window.onload=function(){ var h = document.getElementById('message'); h.onkeypress = jilgeoves; } на $(document).ready(function(){ var h = document.getElementById('message'); h.onkeypress = jilgeoves; }); чтобы не ждать полной загрузки страницы - думаю всё верно ещё раз спасибо!!! |
Часовой пояс GMT +3, время: 18:08. |