无法使事件监听器工作

时间:2012-07-16 17:04:07

标签: jquery event-listener webkit-transition

我有一个事件监听器,我正在努力工作,似乎无法让它运行。我有一个onclick设置,可以切换提示webkit转换的div类。当转换结束时,我希望jquery将外部页面加载到div中,但它不会加载它。这是我设置的js

<script type="text/javascript">
function fullscreen_slider_load() {
var fullscreen = document.getElementById("fullscreen");

function fullscreen_done1() {
    console.log("done called");
    fullscreen.removeEventListener("webkitTransitionEnd", fullscreen_done1);
    fullscreen.addEventListener("webkitTransitionEnd", fullscreen_done2);
    $(function fullscreen_load() {
    $('#fullscreen')
       .html('<img src="http://www.klossal.com/loader.gif"/>')
       .load('http://www.klossal.com/portfolio/space_fullscreen.html');
});


function fullscreen_done2() {
    fullscreen.removeEventListener("webkitTransitionEnd", fullscreen_done2);

};
</script>

我不确定为什么它没有加载,但我能得到的任何帮助将非常感激。

1 个答案:

答案 0 :(得分:0)

这部分代码对我来说毫无意义,并且与您所说的想要发生的内容不一致。您发布的代码似乎没有适当的支撑:

$(function fullscreen_load() {
$('#fullscreen')
   .html('<img src="http://www.klossal.com/loader.gif"/>')
   .load('http://www.klossal.com/portfolio/space_fullscreen.html');
});

如果我理解这一点,它会设置一个document.ready()事件处理程序,用于将新内容加载到#fullscreen。我认为这不是你想要的。

我也没有看到你添加触发fullscreen_done1()的事件监听器的任何地方,我没有看到fullscreen_done2()事件监听器的任何原因,因为它没有在这里使用。 / p>

如果您只是希望全屏对象在第一次CSS转换完成后加载一些新内容并且您已注册将在其他地方调用fullscreen_done1()的事件侦听器,则可以使用此(固定缩进和支撑) :

<script type="text/javascript">
function fullscreen_slider_load() {
    var fullscreen = document.getElementById("fullscreen");

    function fullscreen_done1() {
        console.log("done called");
        fullscreen.removeEventListener("webkitTransitionEnd", fullscreen_done1);
        fullscreen.addEventListener("webkitTransitionEnd", fullscreen_done2);
        $(fullscreen)
           .html('<img src="http://www.klossal.com/loader.gif"/>')
           .load('http://www.klossal.com/portfolio/space_fullscreen.html');
    }

    function fullscreen_done2() {
        fullscreen.removeEventListener("webkitTransitionEnd", fullscreen_done2);
    }
}
</script>

如果你试图做一些比这更多的事情,那么请说明你在第一次过渡完成后还想做些什么。

P.S。如果不在函数声明下缩进代码,则很容易误解代码的意图。

您的代码也不适用于Firefox或Opera(支持CSS3过渡的非webkit浏览器)。