06.09.2015, 22:12
|
Аспирант
|
|
Регистрация: 15.03.2012
Сообщений: 79
|
|
запуск скрипта с помощью идентификатора
<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"
Спасибо
|
|
06.09.2015, 22:52
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
Сообщение от BARABANTEMO
|
как сделать чтобы скрипт запускался по нажатию на блок с иденификатором id="message"
|
заменить onKeyPress на onclick. А если надо чтоб срабатывал не при каждом клике, а при получении фокуса в textarea, то onfocus
|
|
07.09.2015, 00:07
|
Аспирант
|
|
Регистрация: 15.03.2012
Сообщений: 79
|
|
BETEPAH, а как сделать чтоб onclick или onfocus срабатывал на id="message"
|
|
07.09.2015, 00:10
|
Аспирант
|
|
Регистрация: 15.03.2012
Сообщений: 79
|
|
я делал так но не то
$("#message").click(function(){return jilgeoves(this,event,'.geojilves');});
|
|
07.09.2015, 12:11
|
Аспирант
|
|
Регистрация: 06.09.2015
Сообщений: 61
|
|
Сообщение от BARABANTEMO
|
BETEPAH, а как сделать чтоб onclick или onfocus срабатывал на id="message"
|
Вставить onclick(onfocus)="return jilgeoves(this,event,'.geojilves');" в тег с id="message". Или так, как вы и делали:
Сообщение от BARABANTEMO
|
я делал так но не то
$("#message").click(function(){return jilgeoves(this,event,'.geojilves');});
|
А почему не то?
|
|
07.09.2015, 12:39
|
Аспирант
|
|
Регистрация: 15.03.2012
Сообщений: 79
|
|
nesnayka, а потому что скрипт не запускается посмотрите сами
|
|
07.09.2015, 19:10
|
Аспирант
|
|
Регистрация: 06.09.2015
Сообщений: 61
|
|
Сообщение от BARABANTEMO
|
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.
Давайте Вы нам расскажете, что вы хотите сделать, вообще.
|
|
07.09.2015, 22:20
|
Аспирант
|
|
Регистрация: 15.03.2012
Сообщений: 79
|
|
я хочу сделать так чтобы данная функция переключения языков запускалась с помощью идентификатора #message так как я хочу поставить этот скрипт в личных сообщениях на ucoz а там нет textarea чтобы добавить в нём onKeyPress="return jilgeoves(this,event,'.geojilves');"
|
|
07.09.2015, 23:16
|
Аспирант
|
|
Регистрация: 06.09.2015
Сообщений: 61
|
|
Тогда вот так (стоит заметить, что аргументы у ф-ции я поубирал и присвоил нужным переменным значение внутри ф-ции):
<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", в котором он будет менять аглицкие буквы на грузинские и перед всем этим делом нажали грузинский флаг. ))
|
|
07.09.2015, 23:37
|
Аспирант
|
|
Регистрация: 15.03.2012
Сообщений: 79
|
|
nesnayka, большое спасибо всё как всегда в точку думаю тему можно закрывать
да ещё на по следок я заменил
window.onload=function(){
var h = document.getElementById('message');
h.onkeypress = jilgeoves;
}
на
$(document).ready(function(){
var h = document.getElementById('message');
h.onkeypress = jilgeoves;
});
чтобы не ждать полной загрузки страницы - думаю всё верно
ещё раз спасибо!!!
|
|
|
|