как использовать JQuery .live () без какого-либо взаимодействия с человеком, т.е. - PullRequest
1 голос
/ 23 сентября 2011

Вот мой код, который автоматически обновляет div, содержащий твиты, извлеченные из твиттера:

var twittercacheData;
var twitterdata = $('#bottom-bar').html();
var twitterauto_refresh = setInterval(
function ()
{
    $.ajax({
        url: 'twitter.php',
        type: 'POST',
        data: twitterdata,
        dataType: 'html',
        success: function(twitterdata) {
            if (twitterdata !== twittercacheData){
                //data has changed (or it's the first call), save new cache data and update div
                twittercacheData = twitterdata;
                $('#bottom-bar').fadeOut("slow").html(twitterdata).fadeIn("slow");
            }           
        }
    })
}, 60000); // check every minute - reasonable considering time it takes 5 tweets to scroll across

Единственное, что в twitter.php я делаю так:

// initialise the marquee plugin so that we get a nice smooth scrolling effect
$('div.twitter marquee').marquee();

В сущности, я вытаскиваю твиты, запихиваю их в выделение и инициализирую плагин выделения для Remy Shap rp, а поскольку div обновляется, я думаю, что выделение плагина не инициализируется после первоначального обновления, потому что после первогоотлично работает, firebug сообщает, что:

marqueeState is undefined

Я изучил использование .live(), но не знаю, какой тип события использовать, потому что не могу вспомнить тот, который не 'не требует взаимодействия с пользователем.

Есть мысли?

Ответы [ 3 ]

1 голос
/ 23 сентября 2011

Я бы использовал плагин livequery и сделал бы что-то вроде этого:

$('div.twitter marquee').livequery(function() {
   $(this).marquee();
});

Или вы можете использовать пользовательские события с .live ().

1 голос
/ 24 сентября 2011

Если вы хотите, чтобы пользовательские события могли запускаться программно, jQuery предоставляет: http://fuelyourcoding.com/jquery-custom-events-they-will-rock-your-world/

1 голос
/ 23 сентября 2011

попробуйте использовать window.onload = functionName

...