<a> onclick function not working</a>

时间:2014-08-12 05:30:24

标签: javascript html

单击标记时不会触发我的函数。这是我的代码:

HTML:

<div data-role="footer">
    <div data-role="tabstrip" id="tabs"> 
        <a href="views/contacts.html" data-icon="home" id="home">Home</a>  
        <a href="views/settings.html" data-icon="settings" id="settings">Settings</a>
        <a onclick="signOff()" href="views/home.html" data-icon="settings" id="contacts">Log Out</a>
    </div>
</div>

JavaScript的:

function signOff() {
    console.log("something");
    VCare.VCareWebService.signOff({cache:false,
        callback:function(xml) { // invoke the service
            // use jQuery to extract information we are interested in
            console.log(xml);
        }
   });
}

4 个答案:

答案 0 :(得分:1)

onClick您不能拥有href功能和有效<a>属性。 将您的锚元素更改为:

<a onclick="signOff()" href="javascript:void(0)" data-icon="settings" id="contacts">Log Out</a>

如果您愿意,可以使用javascript重定向页面。

答案 1 :(得分:1)

您需要将A标记更改为

<a  href="javascript:signOff();
window.location = "views/home.html" data-icon="settings" id="contacts">Log Out</a>

答案 2 :(得分:0)

另一种方法是确保onclick返回false以阻止默认事件运行。

<a onclick="signOff(); return false" href="views/home.html" data-icon="settings" id="contacts">Log Out</a>

或..

<a onclick="return signOff();" href="views/home.html" data-icon="settings" id="contacts">Log Out</a>

function signOff() {
    console.log("something");
    VCare.VCareWebService.signOff({cache:false,
        callback:function(xml) { // invoke the service
            // use jQuery to extract information we are interested in
            console.log(xml);
        }
   });

   return false;
}

答案 3 :(得分:0)

我建议不要使用onclick方法。它不仅显然与默认的href操作冲突,而且它还可能导致一些轻微的视觉问题,点击元素的边缘等,可以调用函数而不会像在普通链接中那样突出显示文本

相反,请使用:

<a  href="javascript:signOff()" data-icon="settings" id="contacts">Log Out</a>

然后,只需使用signOff或类似

this.document.location.href = location函数中以编程方式更改网页地址 编辑:它看起来像window.location效果更好。奥马尔+1,看起来他有相同的答案