2011-08-14 27 views

Trả lời

61

Hãy trở callback của bạn false và qua đó sang onclick handler:

<a href="#" onclick="return callmymethod(24)">Call</a> 

function callmymethod(myVal){ 
    //doing custom things with myVal 
    //here I want to prevent default 
    return false; 
} 

Để tạo duy trì đang tuy nhiên, bạn nên tránh sử dụng "Javascript nội tuyến" (tức là: mã nằm ngay trong thẻ của phần tử) và sửa đổi hành vi của phần tử thông qua một Tệp nguồn Javascript (được gọi là unobtrusive Javascript).

Các mark-up:

<a href="#" id="myAnchor">Call</a> 

Mã (file riêng biệt):

// Code example using Prototype JS API 
$('myAnchor').observe('click', function(event) { 
    Event.stop(event); // suppress default click behavior, cancel the event 
    /* your onclick code goes here */ 
}); 
+0

http://jsfiddle.net/aamir/Tcs3w/ không hoạt động –

+1

@AamirAfridi Có, nó đang hoạt động. Bạn nên điều chỉnh fiddle của bạn và thay đổi 'onLoaded' thành' no wrap'. Hoặc chỉ cần viết đánh dấu .html của riêng bạn thay thế. –

+0

Vui lòng xem câu trả lời dưới đây! "Theo tôi, câu trả lời là sai! Anh ấy đã yêu cầu event.preventDefault(), khi bạn trả về false, nó gọi event.preventDefault(); AND event.stopPropagation();" –

27

Hãy thử

<a href="#" onclick="callmymethod(24); return false;">Call</a> 
+0

tốt đẹp chỉ đơn giản là tốt nhất. Tôi muốn điều này cho \t event.preventDefault(); –

16

Theo tôi câu trả lời là sai! Anh ta yêu cầu event.preventDefault(); khi bạn đơn giản trả về false; nó cũng gọi số event.preventDefault();event.stopPropagation();!

Bạn có thể giải quyết nó bằng cách này:

<a href="#" onclick="callmymethod(event, 24)">Call</a> 

function callmymethod(event, myVal){ 
    //doing custom things with myVal 

    //here I want to prevent default 
    event.preventDefault(); 
} 
+4

Bạn đang dựa vào 'window.event' không phải lúc nào cũng khả dụng trên các trình duyệt. –

2

Chỉ cần đặt "javascript: void (0)", thay cho "#" trong thẻ href

<a href="javascript:void(0);" onclick="callmymethod(24)">Call</a> 
0

tặng một lớp hoặc id với phần tử và sử dụng hàm jquery unbind();

$(".slide_prevent").click(function(){ 
       $(".slide_prevent").unbind(); 
       }); 
5

Bạn có thể bắt sự kiện và sau đó chặn nó với preventDefault() - làm việc với tinh khiết Javascript

document.getElementById("xyz").addEventListener('click', function(event){ 
    event.preventDefault(); 
    console.log(this.getAttribute("href")); 
    /* Do some other things*/ 
}); 
+0

đây là câu trả lời đúng. Cảm ơn –

6

này làm việc cho tôi

<a href="javascript:;" onclick="callmymethod(24); return false;">Call</a> 
+1

Đây là điều duy nhất hoạt động !!! Cảm ơn người đàn ông! –

+0

không phải lo lắng, vui mừng khi nghe nó :) – Pixelomo

Các vấn đề liên quan