只针对第一个命名元素的jQuery事件
我有超链接,全部命名为'mylink'。他们都应该发射相同的事件,但只有名为“mylink”的第一个元素实际上会触发。我的代码如下:只针对第一个命名元素的jQuery事件
$(document).ready(function() {
$("#formID").validationEngine()
$('#mylink').click(function(e){
var goto = $(this).attr('href'); //get the url
$.ajax({
url: goto
}); //execute the href
e.preventDefault(); //prevent click
$('#mylink').parent().parent().fadeOut("slow");
});
})
我在哪里出错了?
$(function(){
$("#formID").validationEngine(); // don't forget your semi-colons
$(".mylink").click(function(e){ // ID's should be unique, use classes instead
e.preventDefault();
$.ajax({ url: $(this).attr("href") });
$(this).parent().parent().fadeOut("slow"); // refer to this as 'this'
});
});
完美,谢谢。 – 2010-02-03 22:28:48
@GeorgeJohnston:记住'id ='foo''应该只出现在一页上。但'class ='foo''可以出现很多次。所以你只能有一个'',但是很多''。祝你好运! – Sampson 2010-02-03 22:29:48
您不能重复使用“id”值。给定的“ID”只能在页面上使用一次。
如果需要影响多个元素,使用“类”成分:
<div id="uniqueString" class="makeMeMoo makeMePurple makeMeClickable">
<!-- whatever -->
</div>
我不知道,这一切都让更有效率,但同时你在那里,它可能不是一个坏主意,通过元素(#myLink的),还引用了该链接,否则jQuery的可能有搜索整个文档的类。
$('a.mylink').click(function(e) {
@Josh:批评可以更具建设性。 – Sampson 2010-02-03 22:31:44