[jQuery] - Задай вопрос, получи ответ

Discussion in 'PHP' started by banned, 20 Apr 2008.

  1. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    В этой теме задаём вопросы по библиотеке jQuery (Ajax, JS, Css and etc...)

    [thread=67436]FAQ[/thread]
     
    #1 banned, 20 Apr 2008
    Last edited: 20 Apr 2008
    3 people like this.
  2. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    Как проверить показан ли элемент(конкретно для выпадающей менюшки)?
    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>
     
  3. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    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();
        }
    }
     
    #3 banned, 20 Apr 2008
    Last edited: 20 Apr 2008
  4. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Code:
    $('#content').is(undefined)
    Выражение выше никогда истинным не будет, вот код из самой jQuery:
    Code:
    is: function( selector ) {
    	return selector ?
    		jQuery.multiFilter( selector, this ).length > 0 :
    		false;
    },
    + не указанные параметры всегда передаются как undefined
     
  5. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    [Вопрос] 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(); ???
    Просто лна будет использоваться в разных местах, и дублировать ее код в каждой функции нет смысла
     
    #5 Naydav, 25 Apr 2008
    Last edited: 25 Apr 2008
  6. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Все работаетЭ вот так:

    PHP:
    $(document).bind("ready", function(){
        $(
    "#loginButton").click(function()
        {
            
    feed();
        });   
    });
        
        function 
    feed()
        {
                    
    alert("i");             
        }
    Но правильно ли составлен код?
    И почему функция срабатывает два раза?
     
  7. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Срабатывает ровно один раз:
    Code:
    <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">
    
    Код вроде верный, может, несколько нерациональный.
    Например, следующее:
    Code:
    $(document).bind("ready", function(){ 
        $("#loginButton").click(function() 
        { 
            feed(); 
        });
    можно заменить на:
    Code:
    $(document).ready(function()
    {
      $('#loginButton').click(feed);
    };
    или
    Code:
    $(document).bind('ready', function()
    {
      $('#loginButton').bind('click', feed);
    };
    + если функция loginStart вызывается один раз, можно оставить её анонимной.
    Недостаточно исходных данных. Могу лишь предположить, что обработчик навешен и на родительский элемент и на потомка. (События в JS "Всплывают")

    P.S.
    До какого-либо её использования.

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

    brasco2k Elder - Старейшина

    Joined:
    23 Nov 2007
    Messages:
    258
    Likes Received:
    91
    Reputations:
    0
    как сделать выпадающий элемент под тип:

    slideToggle("medium");

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

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    $("#obj").slideIn();
     
  10. brasco2k

    brasco2k Elder - Старейшина

    Joined:
    23 Nov 2007
    Messages:
    258
    Likes Received:
    91
    Reputations:
    0
    не работает...
     
  11. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    376
    Reputations:
    460
    Где можно найти Manning jQuery in Action 2008 на русском? :)
     
  12. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Code:
    <!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>
     
    1 person likes this.
  13. brasco2k

    brasco2k Elder - Старейшина

    Joined:
    23 Nov 2007
    Messages:
    258
    Likes Received:
    91
    Reputations:
    0
  14. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Я бы посоветовал исходники почитать.
     
  15. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    brasco2k
    Ой ошибся, правильно
    # slideDown(speed, callback) – показать элемент, спустив его сверху;
    # slideUp(speed, callback) – показать элемент, подняв его снизу;

    А вообще, вот справочник/шпаргалка по всем свойствам
    http://www.gscottolson.com/jquery/jQuery1.2.cheatsheet.v1.0.pdf
     
    #15 Naydav, 26 May 2008
    Last edited: 26 May 2008
  16. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    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
    вполне читабельна и на инглише...
    главное примеры
     
    #16 Naydav, 26 May 2008
    Last edited: 26 May 2008
  17. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    PHP библиотека для jQuery
    Данная библиотека очень схожа по назначению с Xajax, только на клиентской части используется jQuery и небольшой класс для разбора ответа сервера
    http://anton.shevchuk.name/php/php-library-for-jquery/

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

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Вопрос нужно выбрать все инпуты(класса option) из формы,значение которых не пустое
    что-то типа
    но так length всегда 0
    возможно из-за того, что value при загрузке у всех пустое
     
  19. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Code:
    $('input.option[@value]');
     
    1 person likes this.
  20. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Наверно это уже обсуждалось:
    Если мы используем ajax, то данные передаються в utf8, можно ли передавать данные в windows-1251

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