在元素的事件监听器上以及在页面加载时执行jQuery?

时间:2013-12-04 11:26:57

标签: jquery

我不知道它是否相关但我使用jQuery Cycle 2插件http://jquery.malsup.com/cycle2/api/

幻灯片转换后执行以下代码。它的工作完美但我需要在页面加载时运行代码(在任何幻灯片转换之前)。如何修改下面的代码才能实现?

$('.cycle-slideshow').on('cycle-after', function( event, opts ) {

    setTimeout(function() {

        var oldURL = window.location.hash;

        var final_url="";
        final_url=oldURL.replace('#', '');
        history.pushState('data', '', final_url);

         console.log('test 2');
    }, 1);

});

3 个答案:

答案 0 :(得分:3)

为该功能命名并参考它。

var cycleFn = function( event, opts ) {
    setTimeout(function() {

        var oldURL = window.location.hash;

        var final_url="";
        final_url=oldURL.replace('#', '');
        history.pushState('data', '', final_url);

        console.log('test 2');
    }, 1);
};

$(window).on('load', cycleFn);
$('.cycle-slideshow').on('cycle-after', cycleFn);

答案 1 :(得分:0)

尝试这样做。将重复内容定义为函数,然后随时使用它。

function theFunction(){
setTimeout(function() {

        var oldURL = window.location.hash;

        var final_url="";
        final_url=oldURL.replace('#', '');
        history.pushState('data', '', final_url);

         console.log('test 2');
    }, 1);
}

$('.cycle-slideshow').on('cycle-after', function( event, opts ) {
theFunction();
});

$(document).ready(function(){
theFunction();
});

答案 2 :(得分:0)

试试这个:

调用pageload:

 window.onload = function{CycleSlideshowFn();}

调用事件处理程序:

     $('.cycle-slideshow').on('cycle-after', function(){
        CycleSlideshowFn();
     ));

你的职能:

function CycleSlideshowFn(){
setTimeout(function() {

        var oldURL = window.location.hash;

        var final_url="";
        final_url=oldURL.replace('#', '');
        history.pushState('data', '', final_url);

         console.log('test 2');
    }, 1);
}