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

Форум АНТИЧАТ (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();

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


Время: 22:26