如何在打开窗口后禁用onclick for my link并在窗口关闭后启用它?

时间:2014-02-18 14:54:35

标签: javascript jsp

我有一个链接,我想知道是否有可用的javascript来使链接只能点击一次。

我刚才的onclick是:

javascript:writeBookmark(this); var newwin = window.open('<c:url value="/buyers/select/addPQQSection.html?listId=${listId}&questionIndex=0&pageId=${pageId}&sectionId=-1&amp;mode=${PQQ_ADD_SECTION }"/>', 'additional', 'width=400,height=280,toolbar=no,,menubar=no,scrollbars=yes,resizeable=no'); newwin.focus(); return null;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

编辑(根据评论):

使用this.onclick = null有效,但我需要刷新页面以启用点击我的链接。我需要在打开窗口时禁用单击,并在窗口关闭后启用它。

3 个答案:

答案 0 :(得分:1)

您有几个选择。最简单的可能只是隐藏脚本末尾的按钮。

以下是您的按钮的外观:

<input type="button" value="Click Once" onclick="runAction(this, '<c:url .... />');" />

然后你可以拥有你的javascript函数(或者如果你想要的话,所有这些都可以内联):

<script type="text/javascript">
function runAction(element, url) {
  writeBookmark(this); 
  var newwin = window.open(url, 'additional',
     'width=400,height=280,toolbar=no,,menubar=no,scrollbars=yes,resizeable=no'); 
  newwin.focus(); 
  element.style.display = 'none';
}
</script>

你也可以禁用按钮:

element.disabled = 'disabled';

JQuery使删除按钮的行为更加优雅:

$(element).hide(500);

答案 1 :(得分:0)

<a href='runMyFunction()'>link</a>

然后在你的Javascript中:

var check = true; 
function runMyFunction(){ 
    if (check) {
        //do something 
        console.log('run me once');
        check = false;
    }
}

查看我的JSFiddle:http://jsfiddle.net/D28Lc/

答案 2 :(得分:0)

您可以添加this.onclick = null添加函数调用的结尾:

<a onclick="javascript:writeBookmark(this); var newwin .... this.onclick = null;">click</a>