我有一个页面,并在一个custom.js文件(我正在使用jQuery )中定义了我的java脚本函数。我把JS文件放在body末尾的</body>标签之前
我的页面有一个这样的div元素:<div id="userinfo"></div>当我的页面加载时,我的JS文件将外部页面提取到该页面。
外部页面有一个像这样的<div id="login"></div>元素
在我的JS文件中,我定义了一个函数,当用户单击login时,模式窗口加载并向用户显示登录表单。
但是当我加载外部页面时,我的JS文件无法工作!!似乎找不到元素。
请给我指引!:)
custom.js文件的某些部分:
jQuery(document).ready(function($) {
$('#userinfo').load('CustomerOptions.asp');
(function() {
$('#login').click(function(event){
// something to do
});
})();
});发布于 2012-07-18 00:58:20
它不起作用,因为在#login出现在DOM中之前,您已经给它分配了一个事件。对于这种情况,您必须使用“实时”事件。实时事件不要求目标元素出现在DOM中。
jQuery(document).ready(function($) {
$('#userinfo').load('CustomerOptions.asp');
$('#userinfo').on('click','#login',function(event){
// something to do
});
})();EDIT:正如@ManselUK所指出的,'live‘已弃用,必须使用'on’。
https://stackoverflow.com/questions/11527221
复制相似问题