2013-08-06 27 views
9

Tôi có một bảng mà tôi muốn chặn các nhấp chuột liên kết, bởi vì tôi cần các liên kết cho các chức năng khác.jQuery onClick ngăn chặnDefault

Cấu trúc của bảng là một cái gì đó như thế này:

<table> 
<tr><th>Day</th><th>Event</th> 
<tr class="DAY" id="DAY_0"><td>1-8-2013</td><td><a href="?tab=tabCalendar&dayEvent=DAY_0">Add Event</a></td></tr> 
<tr class="DAY" id="DAY_1"><td>2-8-2013</td><td><a href="?tab=tabCalendar&dayEvent=DAY_1">Add Event</a></td></tr> 
</table 

mã jquery của tôi để thử và ngăn chặn việc từ làm mới trang, và hiển thị id là này

<script> 
    $("a").click(
     function(event) { 
     event.preventDefault(); 
     alert('Picked: '+ event.target.id.slice(4)); 
     } 
    ); 
    </script> 

Tôi cũng có đã thử sau

$(".DAY").click(function(){//to catch the class DAY.click() 

và thậm chí

$("[id^=DAY]").click(function(){//to catch the id DAY*.click 

tuy nhiên, không có chức năng nào trong số này hoạt động.

Các phiên bản tôi sử dụng là

jquery-1.9.1.js 
jquery-ui-1.10.3.custom.js 

Trả lời

10

cách tiếp cận đơn giản nhất:

<script> 
    $(".DAY").click(
     function(event) { 
     event.preventDefault(); 
     alert('Picked: '+ $(this).attr('id').slice(4)); 
     } 
    ); 
</script> 
6

Cố gắng đưa kịch bản trong DOM READY

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("a").on('click',function(event) { 
      event.preventDefault(); 
      alert('Picked: '+ $(this).parent('td').parent('tr').id.slice(4)); 
     }); 
    }); 
</script> 
+0

có gì khác biệt? –

+0

DOM READY và ​​cảnh báo – Gautam3164

+0

miễn là tập lệnh đã chạy trước khi bạn thử và nhấp vào nội dung nào đó mà nó sẽ không tạo ra bất kỳ sự khác biệt nào. nếu kịch bản chạy trước khi các phần tử tồn tại trong dom nó sẽ lỗi anyway. –

2

Bạn cần phải tìm ra id của closesttr của nhấp a

Hãy thử

jQuery(function($){ 
    $("a").click(function(event) { 
     event.preventDefault(); 
     alert('Picked: '+ $(this).closest('tr').attr('id').slice(4)); 
    }); 
}); 
4

Hãy thử điều này:

$(document).ready(function(){ 

    $("a").click(
     function(event) { 
     event.preventDefault(); 

      DATA = $(this).closest('tr').attr('id').slice(4); 

     alert('Picked: ' + DATA); 
     } 
    ); 

}); 

này sẽ được chọn ID của a bạn nhấp vào. Tôi cũng đã tạo điều này như một jSFiddle: http://jsfiddle.net/pAZeb/

+0

trong jsfiddle của bạn, nó hoạt động hoàn hảo, trong trang của tôi, một bản sao thuần túy-dán, nó không. làm mới trang và không có cảnh báo được hiển thị ... – ShadowFlame

+0

CHỈNH SỬA: thay đổi một chút theo thứ tự mã, và bây giờ nó hoạt động. hoặc điều này, hoặc một vấn đề với bộ nhớ cache của một số loại ... – ShadowFlame

1

Có lẽ bạn cần phải sửa đổi như sau:

$("a").click(
function (event) { 
    event.preventDefault(); 
    alert('Picked: ' + $(this).closest('tr').attr('id').slice(4)); 
}); 
Các vấn đề liên quan