【问题标题】:PHP/JavaScript OnMouseOver link not workingPHP/JavaScript OnMouseOver 链接不起作用
【发布时间】:2012-10-22 12:59:09
【问题描述】:

我一直在编写一个脚本,以便在图像悬停时将其更改为链接。

但是,无法单击该链接。光标确实变成了一个指针,我可以在浏览器的左下角看到链接,但是当我单击它时没有任何反应。

它似乎在 Firefox 中有效,而不是在任何其他浏览器中。 鼠标右键 -> 在新标签页中打开,但确实有效。

这是我的代码:

<script type="text/javascript"><!--
var guesta='<a href="<?php $menu = JSite::getMenu();$alias = $menu->getItem(115)->alias;echo $alias; ?>"><?php $menu = JSite::getMenu();$title = $menu->getItem(115)->title;echo $title; ?></a>';


function guest1(){
document.getElementById('guest1').innerHTML=guesta;
document.getElementById('guest1').style.background ='#01afae';
}
function guest1empty(){
document.getElementById('guest1').innerHTML='<img src="image.png" />';
document.getElementById('guest1').style.background ='#fdfdfd';
}
//-->
</script>
<style type="text/css">
.guest {
    width:70px;
    height:100px;
    background-color: #fdfdfd;
    color: #fdfdfd;
    text-align: center;
}
.guest a:link, .guest a:visited {
    color: #fdfdfd;
    text-decoration: none;
    line-height: 15px;
}
</style>
</head>

<body>
<div id="guest1" class="guest" onMouseOver="guest1()" onMouseOut="guest1empty()"><img src="image.png" /></div>

链接中的 PHP 代码用于从 Joomla 检索菜单项别名和标题。

非常非常感谢您的帮助!

最好的问候,
杰罗姆

【问题讨论】:

    标签: php javascript joomla mouseover


    【解决方案1】:

    我建议实际使用 document.createElement("IMG") 和 document.createElement("A") 创建元素。这是知道元素将被正确创建的最可靠方法。 然而,这对我来说似乎不是一个非常实用的方法。为什么您不只是将图像作为链接开始?为什么悬停状态来回改变它? 最后,您是否尝试过回显 Joomla 返回值的内容以确保您甚至可以获取内容?框架可能是非常 finnickey,因此很难弄清楚你到底在哪里得到了错误。 让我们知道!

    【讨论】:

    • 啊,另外,您可以在引号内调用函数。据我所知,这是行不通的。在将变量插入字符串之前,将 $menu->getItem(115).... 分配给变量。另外,在发布代码时,请格式化好一点,当你放置一堆内联变量声明时很难阅读(在字符串内,不少于)。
    • 感谢您的回答。我刚开始使用 Javascript,这些是我学到的头几件事。我将谷歌四处了解createElement。图像将是讲师的照片,当悬停时图像应该消失并且讲师的名字必须显示在绿色背景上。这个由PHP脚本和Joomla制作的链接应该可以显示讲师的详细页面。请记住,最终我将有大约 30 位讲师组成一个网格,菜单 ID 为 115 或更高,每个讲师都有自己的照片和详细信息页面。
    • 也读入不显眼的 javascript。向元素添加事件不像以前那么好。您应该能够给每个图像一个 ID,并能够以其他方式引用它。您永远不必在鼠标悬停时将某些内容变成链接。
    • 你能给我一个开始吗?当我将开头更改为; &lt;?php $menu = JSite::getMenu(); $title = $menu-&gt;getItem(115)-&gt;title; ?&gt; &lt;?php $menu = JSite::getMenu(); $alias = $menu-&gt;getItem(115)-&gt;alias; ?&gt; &lt;script type="text/javascript"&gt;&lt;!-- var guesta='&lt;a href="&lt;?php echo $alias ?&gt;"&gt;&lt;?php echo $title ?&gt;&lt;/a&gt;'; 整个 PHP 部分不再工作了..
    • 首先,您不必在语句之间打开和关闭 PHP 标记。这个 jssite::getmenu 函数是否因为自动返回不同的值而被多次调用?你有两次因为我不知道你的框架,我不能肯定地说什么,但我会尝试重组你如何做你的 HTML 标记,这样你就不必用 PHP 尝试这些技巧和JS。为什么不放一张图片并在页面加载时插入链接? JS有必要吗?使用 css 样式,链接甚至都不可见——我不明白你为什么要这样做。
    猜你喜欢
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多