更改功能参数onclick?

时间:2011-08-22 16:55:25

标签: javascript

 <div class='unsubscribe'><a id='us$id' href='#' onclick='subscribe(u,$id);'>
<img src='/unsubscribe.jpg' alt='unsubscribe' /></a></div>

onclick如何将onclick函数中的第一个参数更改为's'?所以下次它会是这样的。

<div class='unsubscribe'><a id='us$id' href='#' onclick='subscribe(s,$id);'>
<img src='/unsubscribe.jpg' alt='unsubscribe' /></a></div>

4 个答案:

答案 0 :(得分:1)

我不会像你想的那样去做。请参阅 XY Problem

相反,您应该这样做,是使用cookie或链接上的标识符(data-state="s")跟踪用户的订阅状态,并在函数中记笔记。

答案 1 :(得分:0)

不要在HTML中设置onclick,而是在不久之后使用Javascript进行操作。我假设您因为'us$id'而将所有代码作为双引号PHP字符串回显:

<div class='unsubscribe'>
    <a id='us$id' href='#'>
        <img src='/unsubscribe.jpg' alt='unsubscribe' />
    </a>
</div>
<script type='text/javascript'>
    document.getElementById('us$id').onclick = function(){
        // Subscribe u
        subscribe(u, $id);

        // Set all future clicks to subscribe s
        this.onclick = function(){
            subscribe(s, $id);
        };
    };
</script>

答案 2 :(得分:0)

您可以在javascript本身中更改它,而不是更改onclick中的字符串。这是因为你想在整个页面中将所有的s改为u(不确定是否只有一个或者你的意图是什么)。

删除第一个参数:

<div class='unsubscribe'><a id='us$id' href='#' onclick='subscribe($id);'>
<img src='/unsubscribe.jpg' alt='unsubscribe' /></a></div>

然后将subscribe()更改为:

function subscribe(id)
{
    // doing "static" variable in javascript
    if (typeof this.foo == 'undefined')
    {
        this.foo = 's';
    }
    else
    {
        this.foo = 'u';
    }

    ...
}

答案 3 :(得分:0)

一种方法是以文字方式改变它;使用var el = document.getElementById('us$id');检索元素,然后在el.attributes中搜索.name值为“onclick”的属性,并使用第二个函数调用将其子项替换为新的TextNode

另一种方法是更改​​HTML,以便订阅将获得u和s,并以某种方式(例如,使用全局变量,静态变量等)记住这是第一次还是第二次使用此方法调用