0

我有一个 HTML 锚标记,例如

<a href="anchorid" onclick="callEvent(1)">

在这里,我将 Javascript 函数称为

<script>
function callEvent(anchor) {
    alert("Anchor ID is - "+anchor);
    document.getElementById("anchorid").onClick = function () { callEvent(0) }; // BY using this code, update the onclick callEvent(0), like toggle
}
</script>

我想更新锚标签

<a href="anchorid" onclick="callEvent(0)">

使用此代码时,它不会按照我的要求进行更新。

 document.getElementById("anchorid").onClick = function () { callEvent(0) };

我如何让它更新?

4

7 回答 7

2

为了使用document.getElementById("anchorid")..你需要id在你的元素中,你目前没有,尝试做:

//add id to your anchor
<a href="javascript:void(0);" id="anchorid" onclick="return callEvent(1);">
    test
</a>

和js

<script type="text/javascript">
function callEvent(num) {
    alert("Anchor ID is - "+num);
    document.getElementById('anchorid').onclick = function () { callEvent(0) }; 
}
</script>
于 2013-09-12T09:06:52.427 回答
1

将切换值存储在标签本身中,然后使用。

<script>
function callEvent(val) {
    var val = document.getElementById("myId").getAttribute('data-val');
    alert(val);
    // toggle value
    val = val==1?0:1;
    document.getElementById("myId").setAttribute('data-val',val);
}
</script>
<a id="myId" data-val="0" onClick="callEvent()">Click</a>

这里 value 存储在data-valvalue 中,以便在 callEvent 函数本身中切换,因此无需重新绑定事件。

请参阅示例小提琴

于 2013-09-12T09:26:08.917 回答
0

尝试:

document.getElementById("anchorid").onclick

更好的:

document.getElementById("anchorid").addEvenetListener('click', function(){

});
于 2013-09-12T08:56:57.967 回答
0

测试:http: //jsfiddle.net/Yca5W/

document.getElementById("anchorid").onclick =
    function () {
        alert("clicked");
    };
于 2013-09-12T09:00:32.327 回答
0

试试这个:

var anchor= document.getElementById('anchorid');
  anchor.addEventListener('click', function() {
        callEvent(0);
    });

或者

$( "#anchorid" ).click(function() {
 callEvent(0);
});

如果您只想将传递参数从 1 更改为 0 或反之,请执行以下操作:

 <input type="hidden" name="para" id="para" value="1" > 
    <a href="anchorid" onclick="callEvent($('#para').val())">



 $( "#anchorid" ).click(function() {
      if ($('#para').val()==1) {
        $('#para').val(0)
      } else {
        $('#para').val(1)
      }
    });
于 2013-09-12T09:02:31.093 回答
0

如果您只更改调用函数的参数,那么您不必更改完成事件。你可以这样做:

HTML

<a id="anchorid" href="#">click me !</a>

JS

<script>
var anchor = 1;

document.getElementById("anchorid").onclick = function(){
    alert("Anchor ID is: " + anchor);
    anchor = anchor == 1 ? 0 : 1; //toggle 0 and 1
}
<script>
于 2013-09-12T09:14:16.990 回答
0

试试这个,它可能会解决你的问题demo Fiddle

将 id="anchorid" 添加到您的锚标记

下次点击它会通过参数0调用Event,

function callEvent(anchor) {
    alert("Anchor ID is - "+anchor);
    var ele =  document.getElementById("anchorid");
    ele.setAttribute("onclick","callEvent(0)");

}

它会像你想要的那样更新你的链接

<a href="anchorid" id="anchorid" onclick="callEvent(0)">
于 2013-09-12T09:19:15.487 回答