2011-07-10 90 views
2

我已經看到了這一點之前完成,但我不完全知道在哪裏。刪除<a>功能

我使用href屬性<a class="classname">來表示頁面上的特定id,因爲我有jQuery插件,它使用href屬性來定義要使用的id。

當然,用戶點擊該廣告時,頁面滾動下來的id,我真的不想的頂部(我想要的頁面停留在相同的位置)。

有沒有辦法,我可以保持href屬性相同,但抵消的<a class="classname">的「鏈接」功能的任何方式?

+0

如果你不希望它是一個鏈接,你爲什麼用一個鏈接? –

回答

2
$(document).delegate('.classname', 'click', function (e) { 
    e.preventDefault(); 
}); 
+0

另外,如果您不希望事件冒泡,則可以返回false;從功能女巫相同做e.preventDefault()和e.stopPropagation()。 更多信息:http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/ – NicoSantangelo

+0

@Nicosunshine:這當然大多數情況下都是這樣 - 但這裏我聽在文檔根的事件,因此沒什麼無處因爲它在那時起泡。 –

4

添加以下屬性:

onclick="return false;" 
+0

或者,您可以嘗試更改它在插件中使用的屬性。 – JacobTheDev

0

擴大對薩穆埃爾的先生和Ruby先生的回答,您可以使用jQuery將此您的所有元素:

$("a.classname").attr("href", "javascript:void 0").attr("onclick", "return false;"); 
0

的jQuery ,聽起來像你需要使用preventDefault()

<a href="#thisWontWork" class="classname">link</a> 

<script type="text/javascript"> 
$('.classname').click(function(e) { 
e.preventDefault(); 
//do other stuff 
}); 
</script> 

,甚至這樣的事情...

<a href="#thisWontWork" onclick="something(); return false;">link</a> 
0
return false; 

會做的preventDefault和事件都bubling太

<a id="clickme" href="#">click me href </a>  
    $(document).ready(function() { 
     $("#clickme").click(function() { 
      alert("clicked!"); 
      return false; 
     }); 
    }); 
0
<a href="someLink" class="classname">link</a> 
<script type="text/javascript"> 
$(document).ready(function(){ 
     $('.classname').each(function(){ 
      $(this).click(function(){ 
       //do whatever you want 
       alert($(this).attr('href')); 
       return false; 
      }); 
     }); 
}); 
</script> 

希望這是一個多環節有用具有相同的類名。