Archive for the ‘javascript’ Category

jQuery: обработка клика вне всплывающего/выпадающего элемента

Tuesday, November 24th, 2009

При показе элемента биндим клик по документу. Сравниваем – если кликнули по выпадающему элементу, ничего не делаем, если в любом другом месте – прячем выпадающий элемент.

$(document).bind("click", function(e) {

 if ( (e.target == document.getElementById('id_выпадающего_элемента')) ) {

  return;

 } else {

 $('#id_выпадающего_элемента').css({

 display: 'none'

 });

 

 elementHidden = true;

 } 

});

Проблемы с кодировкой в jQuery ajax

Sunday, June 28th, 2009

При передаче (POST) данных через ajax jQuery данные передаются в кодировке в utf-8 какая бы кодировка не стояла в content-type. Приходится POST данные перекодировать на стороне сервера (php).

 
 
function array_iconv(&$array,$in_charset='utf-8',$out_charset='windows-1251') {
    foreach($array as $key => $value) {
        if ( is_array($value) ) {
            array_iconv($array[$key]);
        } else {
            $array[$key] = iconv($in_charset,$out_charset,$value);
        }
    }
}
 
array_iconv($_POST);
 

JavaScript метод inArray

Saturday, January 17th, 2009

В JavaScript отсутствует метод inarray для поиска значения в массиве. Вот одно из решений:

Array.prototype.inArray = function ( search_phrase )
{
    for( var i = 0; i < this.length; i++ ) {
        if( search_phrase == this[i] ) {
            return i;
        }
    }
    return false;
}

Ссылки по теме:
http://itcave.net/javascript/inarray

checkbox: onChange

Saturday, November 1st, 2008

Internet Explorer обрабатывает событие onChange в checkbox только когда последний теряет фокус. То есть нужно кликнуть по чекбоксу и потом кликнуть по какому-либо другому объекту, и только тогда в IE сработает обработчик onChange. Поэтому лучше использовать событие не onChange а onClick:

 
<form>
<input type="checkbox" id="ef0" value="13"
    name="some_check"
    onClick="if ( this.checked ) { }">
</form>
 

js библиотека для работы с графикой

Sunday, October 5th, 2008

Позволяет много что делать с изображениями и текстом на стороне клиента средствами js.

Raphaël—JavaScript Library