jQuery替换onclick

时间:2009-11-25 02:57:40

标签: javascript jquery javascript-events

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

什么是替代onclick =“DeleteSomething('服务器端加载的ID号')”?

有没有办法以某种方式将自定义信息(例如ID)传递给jquery onclick?或者我必须坚持老式的方式?

非常感谢!

亚当

7 个答案:

答案 0 :(得分:6)

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

例如

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

然后在jquery

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

答案 1 :(得分:1)

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

请发布一些标记以获得更多帮助。

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

答案 2 :(得分:1)

在jQuery中你更有可能做类似的事情:

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

“a”是您想要用来找到正确链接的选择器。

回应你的评论:

正如其他人提到的,最好的方法可能是在链接的一个属性中提供动态数据:

<a rel="{id}" >

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

答案 3 :(得分:1)

如果您在rel参数中粘贴要删除的对象的ID,则可以这样做:

<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>

答案 4 :(得分: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>

答案 5 :(得分:0)

如果你这样做会更清洁:

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

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

答案 6 :(得分: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的人实施删除服务器端!