2009-11-25 74 views
2

我刚刚发现了jQuery的强大功能。只是一个简单的问题,但。jQuery替换onclick

什么是onclick =“DeleteSomething('服务器端载入的身份证号码')”的替代品?

是否有某种方式将自定义信息(如ID)传递给jQuery的onclick?还是我必须保持老式的方式?

非常感谢!

亚当

回答

6

我通常使用rel =“”来获取一些额外的数据,我可能需要将它们附加到按钮或其他东西上。

例如

<input class="btnDelete" rel="34" value="Delete" /> 

然后在jQuery的

$('.btnDelete').click(function() { 
    DeleteMethod($(this).attr("rel")); 
    }); 
+1

你甚至可以给它一些除了rel(即:deleteid)以外的墙属性,并以相同的方式访问它:$(this).attr(“deleteid”) – 2009-11-25 03:07:06

+0

哇我不知道我可以做到这一点。我认为这是解决方案! – Adam 2009-11-25 03:12:25

1
$(document).ready(function() { 
    $('#selector').click(function() { 
    //here goes your onclick code 
    }); 
); 

请,张贴一些标记,以获得更多帮助。

另外,您应该阅读jQuery入门资源,链接在库的main page中。

1

在jQuery中,你会更容易做这样的事情:

$('a').click(function(){ 
    # code here 
}); 

以“”是你想用找到合适的链接任何选择。

在回答您的评论:

也许是最好的办法,因为别人提到的,将是在链接的属性之一提供的动态数据:

<a rel="{id}" > 

$('a').click(function(){ 
    deleteFunction($(this).attr('rel')); 
}); 
+0

对,但我该如何将动态数据传递到该函数?就像说它是一个$(“。DeleteComment”)。click并且你有这个类的多个按钮,点击后,他们通过id来删除?以前我只是直接插入到onclick =“DeleteComment(”动态ID“)”的参数中。 – Adam 2009-11-25 03:07:16

0

取而代之的是:

<button onclick="DeleteSomething('THE ID NUMBER LOADED IN BY SERVER SIDE')"> 

这样做:

<button id="thing"> 
<script> 
$(function() { 
    $("#thing").click(function() { 
     DeleteSomething('THE ID NUMBER LOADED IN BY SERVER SIDE'); 
    } 
} 
<script> 
0

它将如果你做这种方式更清洁:

<tag class="someclass" prop1="id from serverside" /> 

$('.someclass').click(function(){ 
    var prop1 = $(this).attr('prop1'); 
    //DeleteSomething(prop1) 
}); 
1

如果你坚持的对象ID你想要在rel参数中删除,你可以这样做:

<script type="text/javascript> 

$('a.deleter').click(function(){ 
    if($(this).attr("rel") != ""){ 
     DeleteSomething($(this).attr("rel")); 
    } 
}); 

</script> 
<a href="javascript:void(0)" rel="54" class="deleter">Delete Widget</a> 
0

使用服务器将{ID}替换为实际ID。

HTML:

<form id="deleter"> 
    <input type="hidden" name="id" value="{ID}" \> 
    <input type="submit" value="Delete" rel="{ID}" \> 
</form> 

的jQuery:

$('form#deleter input[type="submit"]').click(function() { 
    var id = $(this).attr('rel'); 
    DeleteSomething(id); 
    return false; 
} 

不要忘记也执行删除服务器端为未启用JavaScript,谁也人!