2012-04-03 44 views
1

我有一個頁面在頁面加載期間調用某些事件活頁夾。頁面上有一個加載DIV中另一個頁面的鏈接。問題是已經綁定的事件在ajax調用期間不可用於新創建的元素。請幫忙。使用ajax部分頁面加載後如何初始化/附加所有javascript事件

下面是樣品的javascript我使用

//Javascript start 
addEventListener("load", function(event) { 
    init(); 
}); 
function init() { 
_$("body").addEventListener("touchmove", function(event) { 
     ... 
    }); 
    window.addEventListener("orientationchange", function(event) { 
     ... 
    }, false); 
    document.addEventListener("touchstart", function(event) { 
     ... 
    }); 
     document.addEventListener("touchend", function(event) { 
     ... 
    }); 
} 

使用jQuery 1.5

+0

既然你

所以綁定的事件已經在使用jQuery的,你爲什麼不使用jQuery的事件? 有關jQuery中事件綁定的更多信息,請參閱本文:http://www.elijahmanor.com/2012/02/differences-between-jquery-bind-vs-live.html – Bram 2012-04-03 12:00:22

回答

1

你應該使用jQuery的自己的事件attachers:

_$(function(){ 
//Code below will be run on load, jQuery takes care of that for you. 

    _$("body").on('touchmove', function(event){ 
     ... 
    }); 
    // and so on 
}); 

on()重視聽衆dinamically未來創建的元素。您還應該檢查事件是否觸發或正確冒泡到您附加它們的對象。

+0

其他事件如窗口和文件。我的應用程序使用jQuery 1.5 – 2012-04-03 13:50:15

+0

對於1.5,我會回到'.live('touchmove',handler)'。不過,更新你的jQuery以節省一些負載和頭痛。 – keystorm 2012-04-03 15:05:12

+0

另外,'$(window)'和'$(document)'應該爲您的其他事件提供合適的環境。仍然要確保這些事件是以這種方式觸發的,多平臺的,否則你應該嘗試一種不同的方法(即通過插件)。 – keystorm 2012-04-03 15:08:04

相關問題