Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [jQuery] - Задай вопрос, получи ответ (https://forum.antichat.xyz/showthread.php?t=67848)

Isis 20.04.2008 18:33

[jQuery] - Задай вопрос, получи ответ
 
В этой теме задаём вопросы по библиотеке jQuery (Ajax, JS, Css and etc...)

FAQ

scrat 20.04.2008 18:38

Как проверить показан ли элемент(конкретно для выпадающей менюшки)?
Код HTML:

<script language="javascript" src="jquery-1.2.3.min.js"></script>
<script language="javascript">
function loader(page,param)
{
        alert($("#content").css("display"));
        $("#content").hide("slow");
        $.post(page,{ param1: param},onAjaxSuccess);
        function onAjaxSuccess(data)
        {
                $("#content").append(data);
                $("#content").show("slow");
        }
}
</script>
<input type="text" id="t"><input type="button" onclick="loader('ajax.php',document.getElementById('t').value)">
<span id="content"></span>


Isis 20.04.2008 18:40

PHP код:

function loader(page,param)
{
    if($(
'#content').is(':hidden'))
    {
    function 
onAjaxSuccess(data)
        {
            $(
"#content").append(data);
            $(
"#content").show("slow");
        }
        $.
post(page,{ param1param},onAjaxSuccess);
    
    }
    else
    {    
    $(
'#content').hide("slow");
    $(
'#content').empty();
    }



astrologer 20.04.2008 18:54

Код:

$('#content').is(undefined)
Выражение выше никогда истинным не будет, вот код из самой jQuery:
Код:

is: function( selector ) {
        return selector ?
                jQuery.multiFilter( selector, this ).length > 0 :
                false;
},

+ не указанные параметры всегда передаются как undefined

Naydav 25.04.2008 14:10

[Вопрос] JQuery - cинтасис, обработка событий
 
PHP код:

$(document).bind("ready", function(){
    
loginStart();
});
    
    function 
loginStart()
    {                
            $(
"#loginButton").click(
                    function()
                    {
                         
// Фунция затемнения экрана, описаная  в другом месте, так как повторно испрльзуеться
                    
feed();
                        
alert("in");
                    }
            );
     } 

Вопросы:
1. Правильно ли составлен код?
2. Почему при нажатии выскакивает 2 alert("in")?
3. Как срабатывает код? Получаеться при загрузке страницы срабатывает функция loginStart(), а потом, при нажатии на кнопку, что вызывает эту функцию опять? Или кодом, что я привел выше, мы устанавливаем постоянный обработчик при нажатии на кнопку?

спс

ps
или
PHP код:

 $("li").bind("click", function(){
   
// Фунция затемнения экрана, описаная  в другом месте, так как повторно испрльзуеться
                
feed();
}); 

4.Эта функция должна помещаться всегда в оболочке?
5. 4. ГДЕ должна быть описана функция feed(); ???
Просто лна будет использоваться в разных местах, и дублировать ее код в каждой функции нет смысла

Naydav 25.04.2008 14:45

Все работаетЭ вот так:

PHP код:

$(document).bind("ready", function(){
    $(
"#loginButton").click(function()
    {
        
feed();
    });   
});
    
    function 
feed()
    {
                
alert("i");             
    } 

Но правильно ли составлен код?
И почему функция срабатывает два раза?

astrologer 25.04.2008 17:39

Срабатывает ровно один раз:
Код:

<script src="js/jquery.js"></script>
<script>
 $(document).bind("ready", function(){
    $("#loginButton").click(function()
    {
        feed();
    });   
});
   
    function feed()
    {
                alert("i");             
    }
</script>
<input type="button" id="loginButton">

Код вроде верный, может, несколько нерациональный.
Например, следующее:
Код:

$(document).bind("ready", function(){
    $("#loginButton").click(function()
    {
        feed();
    });

можно заменить на:
Код:

$(document).ready(function()
{
  $('#loginButton').click(feed);
};

или
Код:

$(document).bind('ready', function()
{
  $('#loginButton').bind('click', feed);
};

+ если функция loginStart вызывается один раз, можно оставить её анонимной.
Цитата:

И почему функция срабатывает два раза?
Недостаточно исходных данных. Могу лишь предположить, что обработчик навешен и на родительский элемент и на потомка. (События в JS "Всплывают")

P.S.
Цитата:

5. 4. ГДЕ должна быть описана функция feed(); ???
До какого-либо её использования.

P.P.S.
feed - это "кормить", может, нужно "fade"?

brasco2k 23.05.2008 20:11

как сделать выпадающий элемент под тип:

slideToggle("medium");

только чтобы он выпадал по горизонтали

Naydav 23.05.2008 20:38

$("#obj").slideIn();

brasco2k 24.05.2008 13:33

Цитата:

Сообщение от Naydav
$("#obj").slideIn();

не работает...

DIAgen 24.05.2008 13:49

Где можно найти Manning jQuery in Action 2008 на русском? :)

astrologer 24.05.2008 14:21

Цитата:

Сообщение от brasco2k
не работает...

Код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<title>Пример.</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

$(function()
{
  $('#qwe').animate({width: 200});
});

</script>

<style type="text/css">

#qwe
{
  height: 150px;
  background: #EEE;
  border: #AAA solid 1px;
  display: none;
}

</style>

</head>
<body>

<div id="qwe"></div>

</body>
</html>


brasco2k 24.05.2008 15:50

Цитата:

Сообщение от DIAgen
Где можно найти Manning jQuery in Action 2008 на русском? :)

я бы посоветовал

http://anton.shevchuk.name/javascrip...for-beginners/

правда это не книга, но все же...

astrologer 24.05.2008 16:12

Я бы посоветовал исходники почитать.

Naydav 26.05.2008 16:08

brasco2k
Цитата:

не работает...
Ой ошибся, правильно
# slideDown(speed, callback) – показать элемент, спустив его сверху;
# slideUp(speed, callback) – показать элемент, подняв его снизу;

А вообще, вот справочник/шпаргалка по всем свойствам
http://www.gscottolson.com/jquery/jQuery1.2.cheatsheet.v1.0.pdf

Naydav 26.05.2008 16:31

Цитата:

Где можно найти Manning jQuery in Action 2008 на русском?
Цитата:

Первый спринт посвящён замечательному javascript фреймворку - jquery.
Главными источникоми информации, будут являться книга jQuery in Action и официальный сайт jquery.
http://hrundel.eth0.net.ua/blog/2008/03/01/jquery/?reply_to=3

Вот довольно много инфы о jquery на русс
http://drtermit.ya.ru/replies.xml?item_no=26&ncrnd=8484
http://habrahabr.ru/blog/jquery/41688.html
http://flora.org.ru/2008/02/25/15-dnej-s-jquery/
http://www.linkexchanger.su/category/jquery

кcта сама книга
http://kernelhost.org/books/Manning.jQuery.in.Action.Feb.2008.pdf
вполне читабельна и на инглише...
главное примеры

Naydav 26.05.2008 16:50

PHP библиотека для jQuery
Данная библиотека очень схожа по назначению с Xajax, только на клиентской части используется jQuery и небольшой класс для разбора ответа сервера
http://anton.shevchuk.name/php/php-library-for-jquery/

jQuery - AJAX - PHP:
http://jquery.hohli.com/

Naydav 12.06.2008 18:01

Вопрос нужно выбрать все инпуты(класса option) из формы,значение которых не пустое
что-то типа
Цитата:

var count = $(".option").find("@value!=''").length;
но так length всегда 0
возможно из-за того, что value при загрузке у всех пустое

astrologer 12.06.2008 19:18

Код:

$('input.option[@value]');

Naydav 20.06.2008 18:12

Наверно это уже обсуждалось:
Если мы используем ajax, то данные передаються в utf8, можно ли передавать данные в windows-1251

Проблема возникла в том, что когда просто передаю форму, то данные идут на сервер в ютф8, я их обрабатываю и все нормально...
Но когда к форме прикрепляю файл, то данные идут в windows-1251
Вопрос:
Как заставить передавать в одной кодировке(в любой) форму, внезависимости передаеться или нет file

lsass.exe 30.06.2008 20:44

на сайте есть форма авторизации, после ее заполнения даные уходят на скрипт enter.php там проверяются даные и либо выводится ошибка, или если все ок, должно произойти обновление страницы сайта полностью...Пробывал писать <meta http-equiv='refresh' content='0; URL=./'> не помогает...Если юзать header("location: ") то в div'e где выводятся сообщения об ошибке будет вся страница сайта )

Naydav 30.06.2008 21:01

Почему бы потом не вызывать javascript функцию, которая и будет обрабатывать ответ? Так даже и правильней (разделение клиентской и серверной части)

Код:

function showResponse(responseText, statusText){
    var json = eval( "(" + responseText + ")" );
    if(json.error==0) {
            window.reload(true);   
    } else {     
        alert(json.messadge); // или $("#divError").html(json.messadge);
    }
}

Где options и submitHandler

Код:

var options = {
            type: "POST",
            url: "/cAjax.class.php?module=MyProfile&method=checkEditMyProfile&id={id}",
            success: showResponse,
            clearForm: 1,
            timeout: 3000
        };

$(form).ajaxSubmit(options);

В PHP5 и функция для преобразования в json есть

Цитата:

json_encode(array('error'=>1, 'messadge'=>self::cp12512utf($error));
----
Еду домой, если нужно вечером могу выложить полный скрипт обработки форм(валлидация+отправка+о работка результата)

[Raz0r] 30.06.2008 23:25

Есть div с overflow: hidden; Внутри него располагаются создаваемые пользователем DOM-элементы. Каким образом можно с помощью jQuery определить является ли DOM-элемент видимым или невидимым после того, как он оказался за пределами div'а в котором он находится?
З.Ы. с :visible не получается

Naydav 01.07.2008 00:59

[Raz0r]
Невидимым, я так понял будет, тот элемент, который будет отображаться, за пределами установленной высоты и ширины родительского блока.

Как вариант можно узнавать топлефт и топботтом родительского дива, ширину и высоту мы знаем(или узнаем тем же способом), второй шаг - определяем те же параметры для дочернего элемента, и на основе сравнения(тут несколько алгоритмов) - принимаем окончательное решение.

Метод действенный, но не факт, что самый эффективный

Solker 01.07.2008 18:29

Не получается доделать систему рейтинга, принцип как на Баше.
В HTML коде присутствуют несколько <span> с разными ID. Примерно так:
Код:

<a href="#" onclick="rating('+',12)">+</a><span id="12">1</span><a href="#" onclick="rating('-',12)">+</a>
<a href="#" onclick="rating('+',13)">+</a><span id="13">2</span><a href="#" onclick="rating('-',13)">+</a>
<a href="#" onclick="rating('+',14)">+</a><span id="14">0</span><a href="#" onclick="rating('-',14)">+</a>
<a href="#" onclick="rating('+',15)">+</a><span id="15">1</span><a href="#" onclick="rating('-',15)">+</a>

Соответственно по каждому спану по бокам + и - для установления рейтинга.

Рейтинг устанавливается примерно так:
Код:

function rating(znak,quote)
        {       
                $.post("ajax.php", { to: znak, id: quote },
                  function(data){
                            $('#'+quote).html(data)
                  });
        }

т.е. когда кликаеш по плюсю, то в функцию передается собственно знак (+ или -) и ID спана. Ну далее это все идет на скрипт, который уже там устанавливает новый рейтинг, и возвращает рейтинг который вставляется в <span> с id из которого собственно говоря был совершен вызов.

Все выше перечисленное прекрасно работает.

Но я хочу вставить индикатор загрузки, когда совершается через AJAX.
А Индикатор загрузки я хочу запихнуть как раз между <span></span>. Что бы пока скрипт получает новые данные, там вместо рейтинга кружился какойнить шарик.

т.е. принцип примерно такой:
-Скрипт отсылает данные на обработчик.
-Между спанами появляется этот самый шарик.
-Скрипт получает новые данные.
-Убирает шарик.
-Вставляет новые данные.

Не получается сделать четко, иногда кружки появляются сразу во всех спанах, не понятно почему и т.п. ошибки.

Naydav 01.07.2008 19:16

Цитата:

Не получается сделать четко, иногда кружки появляются сразу во всех спанах
А ты указываешь в каком именно спане должен появляться лоадер?

Вначале функции rating сделай включение загрузки своего кружка,
например
Цитата:

function rating(znak,quote)
{
$("#"+quote).html('<img src="/_site/templates/images/ajax_loading.gif" alt="Loading" id="ajaximage"/>');
При отсылке используй jQuery.post( url, [data], [callback], [type] )
где callback, которая возвпащает резал, например так
$("#"+quote).html(resalt); (и кружок погасили и резалт вывели)

пс
и не используй onclick="rating('+',12)", для этого есть $(document).ready(function(){});

Такие обработчики, как и стили должны быть отделены непосредстенно от контента

Naydav 03.07.2008 16:42

Последний элемент в перечислении

Цитата:

$(".status").each(function(){
// alert( $(this:last) );
});
Как узнать, когда подойдет очередь последнего элемента?

пс
$(".status").length - не предлагать, сами с усами :)

astrologer 03.07.2008 18:00

Код:

$(".status").each(function()
{
  if($(this).is(':last'))
  {
    process(this);
  }
});

Цитата:

$(".status").length - не предлагать, сами с усами
Почему?
Код:

var jq = $('.status'), last = jq.size() - 1;
jq.each(function(i)
{
  if(i == last)
  {
    process(this);
  }
});


Trieg 19.07.2008 05:00

Код:

$.fn.ajaxSubmit = function(e) {
  this.submit(function(){
    $("#formErrors_ajax").removeClass().addClass('ajax_message_box').text('Ждемс...').fadeIn("slow");
    var params = {};
    $(this).find("input[@checked], input[@type=\'text\'], input[@type=\'hidden\'], input[@type=\'password\'], input[@type=\'submit\'], option[@selected], textarea").filter(":enabled").each(function() {params[ this.name || this.id || this.parentNode.name || this.parentNode.id ] = this.value;});
    $.post("./XXX", params, function(xml) {
      strError = null;
      oFocus = null;
      $("AjaxResponse", xml).each(function() {
        strError = this.getAttribute("error");
        oFocus = this.getAttribute("focus");
        strRedirect = this.getAttribute("redirecturl");
      });
      if (strError.length == 0) {
        $("#formErrors_ajax").fadeTo(200,0.1,function() {$(this).html('').addClass('off').fadeTo(900,1);});
        redirectu = "YES";    /***  редиректить  ***/
      } else {
        redirectu = "NO";      /***  не редиректить  ***/
        $("#formErrors_ajax").fadeTo(200,0.1,function() {$(this).html(strError).addClass('ajax_error').fadeTo(900,1);});
        if (oFocus) $("#" + oFocus).get(0).focus();
      }
    });
    if (redirectu == "NO") {  /***  невидно переменную redirectu  ***/
      return false;
    } else {
      return true;
    }
  });
  return this;
}

немогу понять почему не видно переменую redirectu..

Shadow_p1raT 25.07.2008 15:01

Думаю я по адрессу,вообщем я получаю список из формы
Код:

64.66.192.62:32080
200.63.213.2:553
201.45.188.172:3128
200.129.178.70:3128
79.134.33.44:3128
201.114.194.163:3128
141.24.249.130:3128
141.24.33.162:3128
118.98.212.242:3128
141.76.45.17:3128

Возможно ли этот список превратить в массив как на php?типа array([0]=>127.0.0.0,[1]=>следующий проксик,а потом отпровлять их по очереди моему скрипту.
Если это возможно,то как это реализовать на jQuery?
Зарание благодарен.

Shirmanov 27.07.2008 17:35

Кто может привести кусок кода на Jquery для аплоада файлов на сервер, БЕЗ ИСПОЛЬЗОВАНИЯ СТОРОННИХ ПЛАГИНОВ, только с помощью одной библиотеки jquery :confused: . Заранее благодарен.

Naydav 28.07.2008 15:38

Цитата:

Сообщение от Shirmanov
Кто может привести кусок кода на Jquery для аплоада файлов на сервер, БЕЗ ИСПОЛЬЗОВАНИЯ СТОРОННИХ ПЛАГИНОВ, только с помощью одной библиотеки jquery :confused: . Заранее благодарен.

jquery - это javascript, а javascript'ами, НЕЛЬЗЯ загрузить файл на сервер (может я конечно отсал от эизни, но врятли :)), можно его(файл) "послать на сервер", например post'ом, но на уровне сервера, все равно нужно иметь скрипт (например написанный на php), который обработает этот запрос...
Примеры таких скриптов (классов) в соседней теме

Shirmanov 28.07.2008 16:41

Цитата:

Сообщение от Naydav
jquery - это javascript, а javascript'ами, НЕЛЬЗЯ загрузить файл на сервер (может я конечно отсал от эизни, но врятли :)), можно его(файл) "послать на сервер", например post'ом, но на уровне сервера, все равно нужно иметь скрипт (например написанный на php), который обработает этот запрос...
Примеры таких скриптов (классов) в соседней теме

Да это понятно, что нужет скрипт я с этим не спорю, как написать отсылку на Jquery этого файла?

Naydav 28.07.2008 17:04

Цитата:

Сообщение от Shirmanov
Да это понятно, что нужет скрипт я с этим не спорю, как написать отсылку на Jquery этого файла?

А чем просто
Код:

<form id="myform" enctype="multipart/form-data" method="post" action="">
<input name="file" type="file"/>
</form>

не устраивает? и что подразумевается под отсылкой? автоматом без нажатия кнопки?

Shirmanov 28.07.2008 20:06

Что бы эта отсылка файла выполнялась без перезагрузки страницы, но по нажатию кнопки, что бы автоматом показалась что все успешно произошло, а если это картинка то показался бы еще и уменьшеное изображение. И все это должно быть без перезагрузки!

Vanofuture 29.07.2008 03:07

Кто-нибудь, подскажите, можно ли этот код как-то элементарно выразить через jQuery?
Код HTML:

img=document.getElementsByTagName('img');
for(i=0;i<img.length;i++){
if(img[i].parentNode.nodeName=='A' && img[i].parentNode.className=='link'){
img[i].parentNode.style.borderBottom='0px';}}


Корвин 29.07.2008 13:27

мне нужен скрипт прокрутки фоток горизонтальный, где мона найти?

Naydav 29.07.2008 13:39

Цитата:

мне нужен скрипт прокрутки фоток горизонтальный, где мона найти?
А поконкретнее, ведь для простого скрола, достаточно фоткам в стиле указать флоат - лефт и поместь в див со стилем оверфлоу авто

а можно и так
_http://www.drive.ru/bmw/photos/?id=1482900
там можешь скрипт и взять

DCRM 07.01.2009 06:03

Столкнулся с проблемой... при подгрузке данных через $.ajax, эффекты от библиотек http://masterfidgeter.com/projects/captify/ ... http://leandrovieira.com/projects/jquery/lightbox/ не распространяются на новые элементы... (так то можно каждый раз через onClick() зараннее написать например для lightbox вызов ф-и вручную... но это уже не то...)

Код:

  $(document).ready(function(){

        $.Lightbox.construct({show_linkback: false.....})

        function getIdSet(div_x,type_x,date_x,url_x)
        {
                $.ajax({type: type_x,data: date_x+'&ajax=true',url: url_x,
                        success: function(dt)        {$(div_x).html(dt);}
                });
        }

p.s. (Вот тут... http://www.takemusu-penza.ru/)

Вот "ручное" переопределение... нужно добавить в подгружаемый элемент... не есть гуд... по идее должна быть ф-я перерасчёта всех элементов... но какая...?
Код:

<script type="texy/javascript">
$(document).ready(function()
{
        $("div.....").lightbox();
        $("img....").captify({...............});
})
</script>


yura372 21.04.2009 22:15

Можете ли вы сделать JQ скрипт который может заменить html код.Например код в ява скрипте один заменить на другой.


Время: 03:15