包含文件之间的Javascript事件委派
我有Index.asp包含文件之间的Javascript事件委派,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我有Index.asp <!DOCTYPE html> <html> <head> </head> <body> <!--#include file="blocks/header.asp"--> <!--#include file="blocks/bottom.asp"--> <!--#include file="blocks/footer.asp"--> </body> </h
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<!--#include file="blocks/header.asp"-->
<!--#include file="blocks/bottom.asp"-->
<!--#include file="blocks/footer.asp"-->
</body>
</html>
最可能的情况是,在设置单击处理程序时,DOM中还不存在这些项。您可以使用jQuery的ready()函数来纠正这一点:
$(document).ready(function() {
$('#Hideheader').on('click',function(){$('.hideMeIamHeader').hide();});
$('#Hidebottom').on('click',function(){$('.hideMeIambottom').hide();});
$('#Hidefooter').on('click',function(){$('.hideMeIamfooter').hide();});
});
jQuery文档:最可能的情况是,在设置单击处理程序时,DOM中还不存在这些项。您可以使用jQuery的ready()函数来纠正这一点:
$(document).ready(function() {
$('#Hideheader').on('click',function(){$('.hideMeIamHeader').hide();});
$('#Hidebottom').on('click',function(){$('.hideMeIambottom').hide();});
$('#Hidefooter').on('click',function(){$('.hideMeIamfooter').hide();});
});
jQuery文档:一旦DOM就绪,就应该执行代码
$(document).ready( function(){
//Your code goes here
$('#Hideheader').on('click',function(){$('.hideMeIamHeader').hide();});
$('#Hidebottom').on('click',function(){$('.hideMeIambottom').hide();});
$('#Hidefooter').on('click',function(){$('.hideMeIamfooter').hide();});
});
更多说明:您的代码是在加载文件时执行的,而不是在加载整个页面时执行的,因此当加载Javascript页面时,实际上并没有创建页面和DOM元素,所以jquery无法找到元素
因此,首先需要让您加载所有DOM内容,然后再加载和处理DOM元素,因此,您的代码应该在DOM就绪后始终执行…您的代码应该在DOM就绪后执行
$(document).ready( function(){
//Your code goes here
$('#Hideheader').on('click',function(){$('.hideMeIamHeader').hide();});
$('#Hidebottom').on('click',function(){$('.hideMeIambottom').hide();});
$('#Hidefooter').on('click',function(){$('.hideMeIamfooter').hide();});
});
更多说明:您的代码是在加载文件时执行的,而不是在加载整个页面时执行的,因此当加载Javascript页面时,实际上并没有创建页面和DOM元素,所以jquery无法找到元素
因此,首先需要让您加载所有的DOM内容,然后再加载和处理DOM元素,这样您的代码应该在DOM准备就绪后始终执行…您会遇到什么错误?没有错误,没有任何hapins,javascript似乎看不到这些divs您会遇到什么错误?没有错误,没有任何hapins,javascript似乎看不到那些与
$(function(){
和$(document)不同的divs。ready(function(){
)?我认为tjis是相同的,但有一个是立即启动的匿名函数,而ready()是函数将等待DOM元素加载到内存中,此时jQuery/JavaScript可以访问这些元素。您确定includes确实正在加载HTML吗?检查您的页面源代码,看看是否显示了div元素。此外,从上面粘贴的示例来看,这些div中没有任何内容,只需在这些div之间添加一些文本即可Start和end标记。我在您的代码中也没有看到对任何jQuery库的引用?即:是,im舒尔所有内容都已加载,但无法从blocks/footer中的脚本访问。asp
此脚本只能访问blocks/footer中的元素。asp
将您的整个脚本包装在try/catch块中,并在您的点击偶中执行相同的操作ts并将任何错误输出到catch块中的控制台。这可能有助于定位问题。如果您看到任何问题,请将其发布到此处。与$(document)有什么区别$(function(){
).ready(function(){
)?我认为tjis是相同的,但有一个是立即启动的匿名函数,而ready()是函数将等待DOM元素加载到内存中,此时jQuery/JavaScript可以访问这些元素。您确定includes确实正在加载HTML吗?检查您的页面源代码,看看是否显示了div元素。此外,从上面粘贴的示例来看,这些div中没有任何内容,只需在这些div之间添加一些文本即可Start和end标记。我在您的代码中也没有看到对任何jQuery库的引用?即:是,im舒尔所有内容都已加载,但无法从blocks/footer中的脚本访问。asp
此脚本只能访问blocks/footer中的元素。asp
将您的整个脚本包装在try/catch块中,并在您的点击偶中执行相同的操作ts并将所有错误输出到catch块中的控制台。这可能有助于定位问题。如果您看到任何问题,请在此处发布。
$(document).ready(function() {
$('#Hideheader').on('click',function(){$('.hideMeIamHeader').hide();});
$('#Hidebottom').on('click',function(){$('.hideMeIambottom').hide();});
$('#Hidefooter').on('click',function(){$('.hideMeIamfooter').hide();});
});
$(document).ready( function(){
//Your code goes here
$('#Hideheader').on('click',function(){$('.hideMeIamHeader').hide();});
$('#Hidebottom').on('click',function(){$('.hideMeIambottom').hide();});
$('#Hidefooter').on('click',function(){$('.hideMeIamfooter').hide();});
});