2009-11-25 119 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,誰也人!