Tôi muốn hỏi về thẻ HTML
<a href="www.mysite.com" onClick="javascript.function();">Item</a>
Làm cách nào để đặt thẻ này thành một thẻ hoạt động với href và onClick ? (thích onClick chạy trước rồi đến href)
Tôi muốn hỏi về thẻ HTML
<a href="www.mysite.com" onClick="javascript.function();">Item</a>
Làm cách nào để đặt thẻ này thành một thẻ hoạt động với href và onClick ? (thích onClick chạy trước rồi đến href)
Câu trả lời:
Bạn đã có những gì bạn cần, với một thay đổi nhỏ về cú pháp:
<a href="www.mysite.com" onclick="return theFunction();">Item</a>
<script type="text/javascript">
function theFunction () {
// return true or false, depending on whether you want to allow the `href` property to follow through or not
}
</script>
Hành vi mặc định của <a>
thẻ onclick
và href
thuộc tính là thực thi onclick
, sau đó theo dõi href
miễn là onclick
nó không trả lại false
, hủy sự kiện (hoặc sự kiện không bị ngăn chặn)
href="#"
ở đó thay vì một URL thực.
Sử dụng jQuery . Bạn cần nắm bắt click
sự kiện và sau đó vào trang web.
$("#myHref").on('click', function() {
alert("inside onclick");
window.location = "http://www.google.com";
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="myHref">Click me</a>
href
thuộc tính có ý nghĩa .
Để đạt được điều này, hãy sử dụng html sau:
<a href="www.mysite.com" onclick="make(event)">Item</a>
<script>
function make(e) {
// ... your function code
// e.preventDefault(); // use this to NOT go to href site
}
</script>
Đây là ví dụ làm việc .
<a href="http://example.com" >Item</a>
và trong Chrome, tôi thấy một số thông báo cho phép trang chạy liên kết này (cảnh báo ở cuối thanh url chrome). Trong safari trong bảng điều khiển, tôi thấy cảnh báo: [bị chặn] Trang tại fiddle.jshell.net/_display không được phép hiển thị nội dung không an toàn từ example.com - vì vậy có thể đây là một số vấn đề bảo mật (chỉ trên fiddle?)
Không cần jQuery.
Một số người nói rằng sử dụng onclick
là thực hành xấu ...
Ví dụ này sử dụng javascript trình duyệt thuần túy. Theo mặc định, có vẻ như trình xử lý nhấp chuột sẽ đánh giá trước điều hướng, vì vậy bạn có thể hủy điều hướng và tự làm nếu muốn.
<a id="myButton" href="http://google.com">Click me!</a>
<script>
window.addEventListener("load", () => {
document.querySelector("#myButton").addEventListener("click", e => {
alert("Clicked!");
// Can also cancel the event and manually navigate
// e.preventDefault();
// window.location = e.target.href;
});
});
</script>
Sử dụng ng-click
thay cho onclick
. và nó đơn giản như vậy:
<a href="www.mysite.com" ng-click="return theFunction();">Item</a>
<script type="text/javascript">
function theFunction () {
// return true or false, depending on whether you want to allow
// the`href` property to follow through or not
}
</script>