如何處理沒有ID的鏈接?它只有一個類名,如「classbeauty」。如何處理JavaScript中的點擊鏈接?
現在我需要知道用戶是否點擊了鏈接。 如果鏈接被點擊,我只需要撥打alert("yes link clicked");
。
我不知道如何處理JavaScript中的事件。
我該怎麼做?
如何處理沒有ID的鏈接?它只有一個類名,如「classbeauty」。如何處理JavaScript中的點擊鏈接?
現在我需要知道用戶是否點擊了鏈接。 如果鏈接被點擊,我只需要撥打alert("yes link clicked");
。
我不知道如何處理JavaScript中的事件。
我該怎麼做?
如果jQuery是一個選項:
$("a.classbeauty").click(function(){
alert("yes link clicked");
});
如果您需要純JavaScript:
var elements = document.getElementsByTagName("a");
for(var i=0; i<elements.length; i++){
if (elements[i].className == 'classbeauty') {
elements[i].onclick = function(){
alert("yes link clicked!");
}
}
}
如果你需要它Greasemonkey:
function GM_wait() {
if(typeof unsafeWindow.jQuery != 'function') {
window.setTimeout(wait, 100);
} else {
unsafeWindow.jQuery('a.classbeauty').click(function(){
alert('yes link clicked');
});
}
}
GM_wait();
爲什麼不'getElementsByTagName(「a」)'? – BalusC 2010-04-25 21:47:08
function getElementsByClassName(class_name) {
var elements = document.getElementsByTagName('*');
var found = [];
for (var i = 0; i < elements.length; i++) {
if (elements[i].className == class_name) {
found.push(elements[i]);
}
}
return found;
}
getElementsByClassName("YourClass")[0].onclick = function() { alert("clicked"); };
這是純順便說一下,JavaScript。這裏的每個人都喜歡jQuery(包括我)。
for (var i= document.links.length; i-->0;) {
if (document.links[i].className==='classbeauty') {
document.links[i].onclick= function() {
alert('yes link clicked');
return false; // if you want to stop the link being followed
}
}
}
+1這是一個很好的答案,請正確,不要downvote! – systempuntoout 2010-04-25 21:23:09
-1沒有足夠的jQuery(只是在開玩笑) – 2010-04-25 22:03:27
function handleLinks(className, disableHref) {
var links = document.body.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
if (links[i].className == className) {
links[i].onclick = function(){
alert('test')
if (disableHref) {
return false; //the link does not follow
}
}
}
}
}
handleLinks('test', true)
您可以在此鏈接測試: http://jsfiddle.net/e7rSb/
我不知道這是否是一種選擇,但我會翻轉標誌鏈接被點擊的時候,然後就測試該變量。
//javascript
var _cbClicked = false;
function checkClicked() {
if (_cbClicked) alert("link was clicked");
return false;
}
//html
<a href="#" class="classbeauty" onclick="_cbClicked = true; return false;">Link Text</a>
<a href="#" onclick="checkClicked();">Check Link</a>
很簡單,純JS :)
如果控制源代碼,你可以添加你的腳本嵌入。
<a onclick="alert('yes link clicked'); return false">Link</a>
如果你的目標的現代瀏覽器,你可以用getElementsByClassName選擇元素。這裏有幾個人提出了他們自己的這個函數的實現。
var node = document.getElementsByClassName('classbeauty')[0]
node.onclick = function(event){
event.preventDefault()
alert("yes link clicked")
}
+1 for preventDefault() – meo 2010-04-25 21:45:59
試試jQuery。拿出來喝幾杯。看看你是否相處。不需要長期的承諾。 – 2010-04-25 21:22:54