-1

这是我对任何论坛的第一个问题,希望得到一些有用且快速的答复..

这是我的 php 代码:

<a href="<?php echo $sp['url']; ?>" id="bstd<?php echo $sp['Id']; ?>" target="_blank" onclick="clk('<?php echo $sp['Id']; ?>','<?php echo $_REQUEST['uid']; ?>')"><img src="images/add.jpj"></a>

和以下javascript函数:

<script>
function clk(a,b){
......... the ajax code to use a,b as variables 
........
}
</script>

这一切都很好......但是。在另一个 javascript 函数中...我想启用/禁用 onclick 和 href

<script>
function disb(p){
if(p>5){
        av=document.getElementById(bstd); //working fine
        av.setAttribute("href", "#");  //working fine
        av.style.cursor="default";  //working fine
        av.onclick = cancel;  //not working... i want to disable the onclick.
    }else{
        av=document.getElementById(bstd);  //working fine
        av.setAttribute("href", ???);  //i want the previous code url link automatically..as it was dynamic and coming from php.
        av.style.cursor="pointer";  //working fine
        av.onclick = ???;  //i want the onclick function clk(with the dynamic php values).

    }
}
</script>

我知道这不容易理解……我想要什么……所以这里有一个简短的描述……

我有一个图像“a1”点击这个我计算我点击了多少次这个图像......现在之后......如果我点击它超过5次......那么只有......标签的onclick应该启用......否则在每次点击时它应该禁用标签的onclick(我有另一个倒数的图像,所以我需要每次都禁用它,天气它被启用或禁用)

我不知道这是否有意义......但我想要解决方案......

4

1 回答 1

1

将您的Idanduid移至data-*属性,然后您可以onclick以一种可以更改而不会丢失它们的方式进行定义。同样保留您的 href 的备份。

<a href="<?php echo $sp['url']; ?>"
   data-href="<?php echo $sp['url']; ?>"
   id="bstd<?php echo $sp['Id']; ?>"
   target="_blank"
   data-Id="<?php echo $sp['Id']; ?>"
   data-uid="<?php echo $sp['uid']; ?>"
   onclick="clk(this.getAttribute('data-Id'), this.getAttribute('data-uid'))"
><img src="images/add.jpj"></a>

然后为这个新模式调整你的JavaScript

function disb(p) {
    var av = document.getElementById(bstd); // remember to use var
    if (p > 5) {
        av.href = "#"; // remove href
        av.style.cursor = "default";
        av.onclick = function () { // prevent action
            return false;
        };
    } else {
        av.href = av.getAttribute('data-href'); // restore href
        av.style.cursor = "pointer";
        av.onclick = function () { // default action
            return clk(
                this.getAttribute('data-Id'),
                this.getAttribute('data-uid')
            );
        };
    }
}
于 2013-05-30T15:25:44.523 回答