0

我是一名平面设计师。所以我的代码知识几乎包括我需要为自己完成的事情。我第一次不得不发布一个问题。但是我已经寻找和测试了大约 5 个小时,并且以我有限的知识完全错过了一些东西。我敢肯定这很简单,我错过了一些东西。我的开发网站在这里http://www.heybuddy.tv/temp/dev/005.html

我遇到的问题是导航链接。我在设计和摄影之间有 jquery 切换的东西,但我不知道如何禁用活动的链接。我不知道它是 IF/ELSE 类型语句,还是 javascript onmouseover 事件。或者即使我的基本方法完全错误。我找不到要查看的示例网站,并且所有谷歌搜索对我的搜索字词没有任何帮助。我很绝望也很沮丧。抱歉,如果这不是显示问题的“最佳实践”。我是新来寻求帮助的。

4

2 回答 2

0

but I have no idea how to disable the links that are active.

if that's your question, in your case I can see on active item class changed to photography-disabled or design-disabled. In jQuery you can do then:

$(document).ready(function(){
    $('#navbar .nav-text a[class*="disabled"]').on('click', function(){
        return false;
    });
});
于 2013-10-26T07:40:05.667 回答
0

更具体一点会有所帮助,但我总是愿意帮助新手。

有很多方法可以使用 jquery 和 javascript 禁用链接。您要做的是访问 disabled 属性(例如 disabled='disabled'/disabled="true"/just plain old disabled 在您的代码中)。

jQuery 解决方案

首先,如果您想动态更改用户单击链接时发生的情况,您将需要使用 javascript 链接,即当您单击链接时调用 javascript 函数的链接。

<a id="myId" name="myName" href="javascript:void(0)" onClick="function()">BlahBlah</a>

接下来,您可以使用以下命令在页面加载时运行任何内容,并且需要这样做以立即禁用包含我的代码的链接。

$( document ).ready(function() { 
    //code and function calls go here
 });

否则,可以使用 jquery 或 javascript 来简单地更改 DOM 元素(文档元素)。

要了解您使用此方法的原因,请阅读

您可以使用以下格式的标记(例如,a、div 等)引用链接属性。('tag').event(function(){}); 要访问特定链接,您需要给它一个 id。格式将变为 ('#id').event(function(){});

您正在寻找类似于以下代码的内容。

$('a').click(function(){return false});

您可能还希望过滤您的链接请求。

$('a').click(function(){return ($(this).attr('disabled')) ? false : true;});

此代码使用旋转运算符((condition)?perform if true:else perform if false) 和 return 语句来更改点击状态。

如果您希望将链接添加到列表中以便跟踪单击的内容,这是可能的。这样,如果您在单击后禁用,则可以跟踪已禁用的内容。可以操作以下代码以启用或禁用特定页面部分,但 javaScript 始终对注入或抓取开放。在这种情况下最好使用服务器端脚本。这主要是为了让您了解正在发生的事情。

var disabled=[]
...
$('a').click(function(){
     var isSet=$(this).attr('disabled');

     if(isSet==false)
     {
       disabled.push(event.target.id);
     }

     return false;
});

要禁用加载,只需在脚本中添加一个 onload 标记,该标记应位于 .js 文件中,以便于阅读和代码安全。

更多信息可在此处使用 jQuery 禁用超链接

JavaScript 解决方案

您可以通过使用标签名称访问 DOM(如 XML)上的所有链接,然后设置 disabled 属性来更改链接的状态。

var list=document.getElementsByTagName("a");

for(var i=0;i<list.length;i++)
{
   list[i].disabled='disabled';
}

此代码访问您的所有链接并使用 for 循环使用 disable 属性禁用它们。

如果您希望禁用特定链接,请使用以下通过其 Id 访问元素的链接。document.getElementById("id").disabled='disabled';

要重新启用所有链接:

var links=document.getElementsByTagName("a");

for(var i=0;i<links.length;i++)
{
   links[i].removeAttribute("disabled");
}
于 2013-10-26T08:00:42.670 回答