Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试在菜单悬停时使用jquery隐藏帧_Javascript_Jquery_Asp.net_Frames - Fatal编程技术网

Javascript 尝试在菜单悬停时使用jquery隐藏帧

Javascript 尝试在菜单悬停时使用jquery隐藏帧,javascript,jquery,asp.net,frames,Javascript,Jquery,Asp.net,Frames,我有一个包含两个框架的框架集的页面;顶部框架和底部框架。顶部框架有一个带有子菜单的菜单。我遇到的问题是,底部框架不允许子菜单按应有的方式下降。我可以扩大顶部框架的尺寸,但管理层不希望这样。由于似乎不可能让下拉菜单在底部菜单上流动,因此我能想到的使其工作的最佳方法是在扩展顶部框架的同时隐藏底部框架。但这只是理论。我以前从未使用过asp.net或frames,因此,老实说,我不确定它是否会起作用 框架集和框架有一个单独的页面,如下所示: <%@ Page Language="vb" AutoE

我有一个包含两个框架的框架集的页面;顶部框架和底部框架。顶部框架有一个带有子菜单的菜单。我遇到的问题是,底部框架不允许子菜单按应有的方式下降。我可以扩大顶部框架的尺寸,但管理层不希望这样。由于似乎不可能让下拉菜单在底部菜单上流动,因此我能想到的使其工作的最佳方法是在扩展顶部框架的同时隐藏底部框架。但这只是理论。我以前从未使用过asp.net或frames,因此,老实说,我不确定它是否会起作用

框架集和框架有一个单独的页面,如下所示:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="dhss.mohsaic.webapplication.mohsaic.DefaultFrameset" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html>
    <head>
        <title>MOHSAIC</title>
        <link rel="shortcut icon" href="/Images/bavicon.ico"/>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0" />
        <meta name="CODE_LANGUAGE" content="Visual Basic 7.0" />
        <meta name="vs_defaultClientScript" content="JavaScript" />
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" />     
    </head>
    <frameset border="0" framespacing="0" rows="95,*" name="frameset" class="frameset" id="frameset">
        <frame src="<%=HeaderFrameURL%>" scrolling="no" frameborder="0" noresize="noresize" name="fraHeader" />
        <frame src="<%=EntireBodyURL%>" scrolling="auto" frameborder="0" noresize="noresize" name="fraEntireBody" id="bottomFrame" />
    </frameset>
</html>
    $(function () {
        alert("I have entered the function");
        $('#mainMenu').hover(function() {
            alert('hidden function working');
            $(this).parent().css("visibility", "hidden");
        }, function() {
            alert('visible function working');
            $(this).parent().css("visibility", "visible");
        });
    });
然而,这并没有起作用。我收到错误“无法读取空属性”行。经过调查,框架集为空,我所做的任何事情都不会改变这一点。所以我放弃了那条路线,试着:

(function() {
    alert("I have entered the function")
    $('#mainMenu').hover(function () {
        alert('hidden function working')
        $(this).parent.document.getElementById('bottomFrame').style.visibility = "hidden"
    }), function () {
        alert('visible function working')
        $(this).parent.document.getElementById('bottomFrame').style.visibility = "visible"
    }               
 });
我没有从中得到任何错误,但什么也没有发生。它甚至没有点击匿名函数

如果有人能告诉我我做错了什么,我将不胜感激。

在代码中是否将$before函数放在前面$函数{}在文档被解析并准备就绪时激发,没有它,函数将无法工作。另外,您不需要使用getElementById'bottomFrame'。style.visibility在jQuery中,有一种非常简短而优雅的方法可以使用CSSPProperty、value编辑css规则。也别忘了放;在你陈述的最后。整个代码如下所示:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="dhss.mohsaic.webapplication.mohsaic.DefaultFrameset" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html>
    <head>
        <title>MOHSAIC</title>
        <link rel="shortcut icon" href="/Images/bavicon.ico"/>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0" />
        <meta name="CODE_LANGUAGE" content="Visual Basic 7.0" />
        <meta name="vs_defaultClientScript" content="JavaScript" />
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" />     
    </head>
    <frameset border="0" framespacing="0" rows="95,*" name="frameset" class="frameset" id="frameset">
        <frame src="<%=HeaderFrameURL%>" scrolling="no" frameborder="0" noresize="noresize" name="fraHeader" />
        <frame src="<%=EntireBodyURL%>" scrolling="auto" frameborder="0" noresize="noresize" name="fraEntireBody" id="bottomFrame" />
    </frameset>
</html>
    $(function () {
        alert("I have entered the function");
        $('#mainMenu').hover(function() {
            alert('hidden function working');
            $(this).parent().css("visibility", "hidden");
        }, function() {
            alert('visible function working');
            $(this).parent().css("visibility", "visible");
        });
    });
更新: 如果我理解正确,您希望在主菜单上悬停时隐藏底部框架,请使用以下代码:

    $(function () {
        alert("I have entered the function");
        $('#mainMenu').hover(function() {
            alert('hidden function working');
            $('#bottomFrame').css("visibility", "hidden");
        }, function() {
            alert('visible function working');
            $('#bottomFrame').css("visibility", "visible");
        });
    });

如果使用框架集和框架,则会出现此类问题。编写JS/Jquery代码只是一种变通方法,坦率地说并不太好

您使用它的具体原因是什么

您是否尝试过使用ASP.NET母版页来创建公共菜单,并在不同的页面上使用它?
如果这不是一个可行的选择,您是否尝试过使用iframe?在主html文件中,创建菜单,并在菜单的div/table标记下添加iframe。此iframe将显示当前在底部框架中显示的不同页面。

Ah shoot。这就解释了为什么它没有进入函数。非常感谢。所以它进入函数,然后进入函数,当我将鼠标悬停在它上面时隐藏帧。不幸的是,它没有任何作用。我尝试了你的代码,但它在错误的框架下工作。我需要把它藏起来。谢谢你的代码,因为它让我看到家长并没有做我认为应该做的事情do@comfortablyNumb不客气。请再试一次好吗?有一个小的语法错误,我修复了缺少的括号@comfortablyNumb,如果我理解正确的话,请使用更新部分的代码。bottomFrame是一个完全不同的框架。在父框架中显示的当前文档中不存在该文件。无法通过这种方式访问它。$window.parent.find'bottomFrame.cssvisibility,\uu_;;可能有用。但不推荐。你在向唱诗班布道,先生!如果我有我的方式,我会彻底检查这个该死的网站。它很古老。然而,我只能做他们允许我做的事。我仍在试图说服管理层采用你提到的方法之一。