gpt4 book ai didi

javascript - 了解最终用户在打开模式窗口时单击了哪个 div

转载 作者:行者123 更新时间:2023-11-27 23:37:33 26 4
gpt4 key购买 nike

我想在用户创建一些超链接时打开模态视图。页面上会有很多超链接,所以我想了解与点击的超链接相关的哪个 div,我应该将用户呈现为模态视图。

我写的代码是:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title> Test</title>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/jquery-ui.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js"></script>

<script>

function OpenModal() {
$("#divModal").dialog({
autoOpen: false, modal: true, title: 'Modal', width: 'auto', height: 'auto'
, buttons: { "Cancel": function () { $(this).dialog("close"); } },
}).dialog('open');
return false;

}
</script>
</head>

<body>
<a href="#" onclick="javascript:OpenModal();">View Page</a>
<div style="display:none;" id="divModal" >
<iframe id="myIframe" src="/menu.php" width="1000" height="800" ></iframe>
</div><br />
<a href="#" onclick="javascript:OpenModal();" >Trip Planning</a>
<div style="display:none;" id="divModal2" >
<iframe id="myIframe2" src="tripplanning.php" width="1000" height="800"></iframe>
</div><br />
</body>
</html>

我只想让 OpenModal 函数中的#divModal 动态化,点击的 div 应该是动态的。

如果有人提供帮助,我将不胜感激。谢谢。

编辑:如果有特定的 <a> 我该怎么办?应该将用户重定向到另一个页面而不是显示模态视图?如何在js函数中查看?

<a href="#divRedirect1">Find a bus</a>
<div style="display:none;" id="divRedirect1" >
<iframe id="myIframe3" src="/transit/findbus.php" width="800" height="600"></iframe>
</div>

例如,如果用户点击“查找公交车”,用户应该转到 findbus.php,而不是看到模态视图。

谢谢。

EDIT2:我刚刚通知这个问题的选定正确答案也建议我在定义 <a> 时使用类标签。所以我听从了他的建议。问题解决如下:

<a href="#divModal" class="displayModalView">Trip Planning</a>
<div style="display:none;" id="divModal" >
<iframe id="myIframe1" src="/transit/access_a_bus.php" width="800" height="600"></iframe>
</div>
<a href="/transit/findbus.php" class="justRedirect">Find a bus</a>

<script>
$(function() {
$('.displayModalView').click(function(e) {... //same what he wrote...}
});
</script>

最佳答案

首先,将 a 元素的 href 属性更改为要转换为模式的 div 的选择器,并删除过时的 onclick 属性。

<a href="#divModal">View Page</a>
<div style="display:none;" id="divModal" >
<iframe id="myIframe" src="/menu.php" width="1000" height="800" ></iframe>
</div><br />

<a href="#divModal2">Trip Planning</a>
<div style="display:none;" id="divModal2" >
<iframe id="myIframe2" src="tripplanning.php" width="1000" height="800"></iframe>
</div><br />

然后您可以在 JavaScript 中 Hook 那些 a 元素的点击事件:

<script>
$(function() {
$('a').click(function(e) {
e.preventDefault();
var target = $(this).attr('href');
$(target).dialog({
autoOpen: false,
modal: true,
title: 'Modal',
width: 'auto',
height: 'auto',
buttons: {
"Cancel": function () {
$(this).dialog("close");
}
}
}).dialog('open');
});
});
</script>

我建议您通过使用类使 a 选择器更具体一些,但是考虑到您问题中的 HTML,这将起作用。

关于javascript - 了解最终用户在打开模式窗口时单击了哪个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33130188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com