[英]HTML/JQuery How can I use BOTH href and onclick?
我被分配去在一个有很多按钮的网页上工作。 这些按钮中的每个按钮都需要向下滚动到特定的div并更改其内容。 我的问题是,每次单击时,除非我移除href,否则它只会锚定并且不会激活onclick。 如何同时使用href和onclick?
例:
<a href="#divId" onclick="alert('Test');"><img src="images/image.png" /></a>
如果您从onclick返回true,它将执行href。 如果从onclick返回false,则不会执行href:
<a href="#divId" onclick="alert('Do nothing'); return false;">Do Nothing</a>
<a href="#divId" onclick="alert('Do something'); return true;">Do Href</a>
一种方法是在javascript中也跳转到位置。 好处是您可以选择发生的顺序。 在这种情况下,您可以根据需要在移动到新位置后显示警报。
您可以编写如下函数:
function jumpTo(strLocTag){
window.location.hash = strLocTag;
}
然后像这样修改HTML:
<a href="#" onclick="jumpTo('divId');alert('Test');"><img src="images/image.png" /></a>
尝试创建一个具有两者的onclick调用函数,因此当您单击它时,它将执行您在此处试图实现的所有功能,然后将您重定向到您指向的网址
window.location.replace("~/Page.aspx#divId");
您也可以使用一个函数来保持HTML干净
<a href="#divId" onclick="extra(); return false;"><img src="images/image.png" /></a>
在您的javascript文件中
function extra(){
alert("Test");
window.location.replace("http://stackoverflow.com");
}
如果是我,我将只使用onClick方法执行所有操作,而不必考虑href部分。
首先,onClick方法可以完成您想做的事情,然后向下滚动到anchor标签。 这是我使用jQuery编写的一个函数,用于使用锚标记在页面上平滑滚动。 这就是我将如何使用它:
function smoothScroll(anchorName, scrollSpeed) {
// Do whatever you were going to have in the onClick event here
// Start the scrolling to the anchor tag
var gotoAnchor = "a[name='" + anchorName + "']";
var scrollToPoint = $(gotoAnchor).offset().top;
$('html, body').animate({ scrollTop: scrollToPoint }, scrollSpeed);
}
然后,要使用该函数,只需取出链接的href并将此函数放在onClick事件中:
<a href="javascript:void(0)" onclick="smoothScroll('divId', 400);"><img src="images/image.png" /></a>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.