JQuery .click функцыя не страляць па націску кнопкі. Ёсць клікаць шмат разоў

У мяне ёсць гэты код JQuery:

$(document).ready(function() {
        $('div.badge_button > .more').click(function() {
        var id = $(this).attr('id');
        $('#window').fadeIn();
        $("#window").empty().html('');
        $('#window').load('badge.php', {id:id});
        $.scrollTo( '#window', 200 );

});
});

і гэты HTML:

<div class = 'badge_button'>More</div>

Мая праблема заключаецца ў тым, што я павінен націснуць на кнопку «больш» шмат разоў, перш чым ён на самай справе пажары. Гэта адбываецца і выключаецца. Ці з'яўляецца гэта з-за паводзінаў па змаўчанні ці ж ён павінен зрабіць з HREF = «#» ?

1
што кіраванне з акном ID?
дададзена аўтар Baz1nga, крыніца
Вы павінны вярнуцца ілжывым; або preventDefault ў вашай мышы, інакш ён усё роўна будзе абнаўляць сайт з хэштэгам. Такім чынам, вы пстрыкае адзін раз, ён асвяжае, пстрыкніце два разы - яго там ужо - і паказвае функцыю. Прынамсі мая тэорыя :)
дададзена аўтар Marco Johannesen, крыніца

3 адказы

Я мяркую, што праблема ёсць спасылка на акно аб'екта (спадзяюся, які вы спрабуеце перадаць).

У гэтым выпадку ваш код павінен выглядаць наступным чынам:

$(document).ready(function() {
        $('div.badge_button > .more').click(function() {
        var id = $(this).attr('id');
        $(window).fadeIn();
        $(window).empty().html('');
        $(window).load('badge.php', {id:id});
        $.scrollTo( window, 200 );
        });
});

Паглядзіце на тое, як вы са спасылкай на дакумент, у той час як звязванне падзеі.

Demo: look at the error console you will now find an error saying page not found as that page does not exist on the server. hopefully it should work on your site.

Акрамя таго, хуткае прапанову, вы можаце пазбавіцца ад document.ready і замест таго, каб выкарыстоўваць жывы апрацоўшчык. Нешта накшталт:

$('div.badge_button > .more').live("click",function() {
        var id = $(this).attr('id');
        $(window).fadeIn();
        $(window).empty().html('');
        $(window).load('badge.php', {id:id});
        $.scrollTo( window, 200 );
        });

Спадзяюся, што гэта дапамагае.

0
дададзена
я не ведаю, хто даваў кожнаму -1
дададзена аўтар re1man, крыніца
чаму адмоўны голас!
дададзена аўтар Baz1nga, крыніца

Я думаю, ня дадаючы вярнуцца ілжывым; праблема. Вам гэта трэба, таму што HREF = # перазагружае старонку.

$(document).ready(function() {
        $('div.badge_button > .more').click(function() {
        var id = $(this).attr('id');
        $('#window').fadeIn();
        $("#window").empty().html('');
        $('#window').load('badge.php', {id:id});
        $.scrollTo( '#window', 200 );
        return false;
});
});

Спадзяюся, што гэта дапамагае ...

0
дададзена
хто-то даў кожнаму мінус 1 ... усталяваў яго
дададзена аўтар re1man, крыніца

Ды логіка jQuery гэта добра, але HREF = # з'яўляецца перазагрузка старонкі.

Проста дадайце вярнуцца ілжывым; ў вашай логіцы Jquery.

$(document).ready(function() {
        $('div.badge_button > .more').click(function() {
             var id = $(this).attr('id');
             $('#window').fadeIn();
             $("#window").empty().html('');
             $('#window').load('badge.php', {id:id});
             $.scrollTo( '#window', 200 );
             return false;
        });
});
0
дададзена
хто-то даў кожнаму мінус 1 ... усталяваў яго
дададзена аўтар re1man, крыніца
некаторыя людзі проста скапіяваць свае адказы 6 хвілін затрымкі ... проста кажу ... лол
дададзена аўтар Akos, крыніца