2013-08-06 52 views
9

我有一張我想要禁止鏈接點擊的表格,因爲我需要其他功能的鏈接。jQuery onClick preventDefault

表的結構是這樣的:

<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 

我的jQuery代碼,試圖從刷新頁面,並顯示該ID塊的就是這個

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

我也有嘗試下面的

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

甚至

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

但是,這些功能都沒有做任何事情。

我使用的版本有

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

回答

10

最簡單的方法:

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

嘗試把腳本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

有什麼區別? –

+0

DOM就緒和警報 – Gautam3164

+0

只要腳本已經運行,然後再嘗試點擊它不會產生任何影響的東西。如果腳本在dom中存在元素之前運行,則無論如何都會出錯。 –

2

你需要找到closesttr的點擊a

id

嘗試

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

試試這個:

$(document).ready(function(){ 

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

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

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

}); 

這將讓你選擇點擊aID。我也創造了這個作爲的jsfiddle:http://jsfiddle.net/pAZeb/

+0

的元素,它完美地工作,在我的頁面中,純粹的複製粘貼,它不會。頁面刷新並沒有顯示提示... – ShadowFlame

+0

編輯:改變了一下代碼的順序,現在它的工作原理。無論是這個,還是某種緩存的問題...... – ShadowFlame

1

也許你需要修改爲以下內容:

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