1

我无法使以下代码将单击处理程序附加到“主”框架上的元素。此代码在框架集定义中。

<!-- #include file ="..\include\AuthenticationCheck.asp" --> 
<!-- #include file ="..\include\serverValidate.asp" --> 

<html>
<head>
<meta NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0">
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
<title>Raider Writer Student Roll</title>
<script type="text/javascript" src="../include/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../include/js/jquery-ui-1.8.4.custom.min.js"></script>

<script type="text/javascript">

    $(function(){//document ready

       $("#main").ready(function () { //The function below executes once the iframe has finished loading

                  $("#main .confirmLink").click(function(e) {
                    alert('hi');

                    });
                });


} );
</script>

</head>
<%
    course_id=request("course_Id")
    if ValidateNumber(course_id)=false then 
        err.raise 8,"Validation: <course_id> is Invalid","<course_id> is: " & course_id
    End if


%>
<%session("currentpage")="tracking"%>

<frameset rows="100,*" border="0">
  <frame name="banner" id="banner" scrolling="no" target="contents" src="rollbanner.asp?course_id=<%response.write(course_id)%>">
  <frameset cols="16%,*" border="5">
    <frame name="contents" id="contents" src="roll.asp?course_id=<%response.write(course_id)%>">



        <frame name="main" id="main" src="../action/helpread.asp?dm=trackingdocs">

  </frameset>
  <noframes>
  <body>
  <p>This page uses frames, but your browser doesn't support them.</p>

  </noframes>
</frameset>


</body>
</html>
4

3 回答 3

1

您不能以<frame>那种方式查看 DOM 内部。尝试这个:

$('#main').contents().find('.confirmLink').click(function() { ... });

现在,即使这样在某些情况下也可能会出现问题。如果框架中的页面导入了 jQuery,那么你可以这样做:

$('#main').get(0).contentWindow.$('.confirmLink').click(function() { ... });

那将使用框架自己的 jQuery 来设置处理程序。

于 2010-09-14T21:32:38.737 回答
0

您是否尝试使用#main作为上下文?

$(".confirmLink","#main").click(function(e) {('hi');});

或更改 $("#main").ready(fn)$("#main").load(fn)

于 2010-09-14T20:42:07.683 回答
0

如果不做大量研究,我会说这可能是一个“文件准备就绪”的问题。您正在等待父文档,而不是框架文档。一旦该页面的所有元素都被认为是“加载”父文档。由于框架在技术上不是页面的一部分,而是一个页面本身,因此不予考虑。

如果您可以控制加载到框架中的页面,则快速解决方法是将 jQuery 调用封装在一个函数中,然后在框架的页面中调用该函数。

于 2010-09-14T20:45:08.457 回答