【问题标题】:How to disable anchor tag after first click in javascript ?第一次点击javascript后如何禁用锚标记?
【发布时间】:2012-07-13 12:09:12
【问题描述】:

我有一个带有 css 类厚框的 a href 标记,我需要在第一次单击后禁用链接。我该怎么做?

aspx代码

<a href="SomePage.aspx?FDID=11&KeepThis=true&TB_iframe=true&height=150&width=400"
     onclick="return DoSomething(this)" class="thickbox" id="AnchorID">
<img id="MyImageButton" alt="Image" src="SiteImages/image.png" runat="server" />
</a>

我的 JavaScript 方法

function DoSomething(element) {

                return true;
            }

【问题讨论】:

  • 制作一个 var firstclick =true; 在函数之外并在 Dosomething 添加 firstclick=false ;或代码隐藏中的相同技术让我知道它是否不起作用
  • 第一次点击后表示第一次可以工作,然后变为禁用?
  • @Steve,我会的,但所有答案都没有帮助我。这就是为什么。
  • @WaqarJanjua 是的,首先我想调用该方法,然后禁用链接。
  • @niknowj,抱歉,我来晚了 - 但如果你从 DoSomething() 返回 true,那么页面不会导航到 href 页面吗?跨度>

标签: javascript asp.net thickbox


【解决方案1】:

在您的 javascript 中,您可以在您的元素中设置属性 disabled=""。 (看here

如果禁用,您的意思是不让浏览器转到该网址,您必须调用event.preventDefault()(看here

【讨论】:

    【解决方案2】:

    为此,您必须创建一个隐藏字段,该字段将存储值示例 1 或 0。如果用户第一次单击链接,请将隐藏字段值设置为 1,并允许用户重定向,然后禁用超链接。如果用户再次单击超链接,则首先检查隐藏字段是否包含值 1,然后不允许他重定向。希望你明白我的意思。还要在 javascript 中设置 href 属性。

    【讨论】:

      【解决方案3】:

      我不确定 OP 到底想做什么,但如果纯粹是为了让脚本在点击后运行一次,这样的事情会起作用......

      function DoSomething(element) {
        if(element.getAttribute("block")==null){
          ...
          element.setAttribute("block","1");
          return true;
        }else{
          return false;
        }
      }
      

      这样做的好处是不通过设置disabled属性来改变按钮的样式。

      但是,从函数返回true,然后又将true 返回到链接的OnClick 处理程序将导致浏览器导航到href 中的URL...所以我不能看看为什么需要阻止第二次运行。 (除非我一无所知的thickbox 以一种不正常的方式工作。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-16
        相关资源
        最近更新 更多