我有超链接,所有都被命名为'mylink'。它们都应该触发相同的事件,但只有名为'mylink'的第一个元素才会触发。我的代码如下:
$(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");
});
})
我哪里错了?
答案 0 :(得分:7)
您无法重复使用“id”值。给定的“id”只能在页面上使用一次。
如果您需要影响多个元素,请使用“class”组件:
<div id="uniqueString" class="makeMeMoo makeMePurple makeMeClickable">
<!-- whatever -->
</div>
答案 1 :(得分:5)
$(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'
});
});
答案 2 :(得分:2)
你应该把它们改成一个类。
答案 3 :(得分:1)
我不知道它的效率更高,但是当你在那里时,按元素(#mylink)引用该链接也可能不是一个坏主意,否则jquery可能必须搜索整个该课程的文件。
$('a.mylink').click(function(e) {