簡體   English   中英

如何使用href和onclick函數傳遞參數

[英]How to pass parameter with a href and onclick function

我想點擊<a href>時傳遞參數,首先我有這個並且工作正常:

    <a href="#" rel="like{{num}}"> I like </a>|

   $("a[rel^='like']").click(function(){
            $.ajax({
                ...
            });

但我不知道如何將參數傳遞給該函數,所以我這樣做:

    <a href="#" rel="like{{num}}"
          onclick="cap(para1, para2)"> I like </a>

最后,在我的Javascript中我有這個簡單的功能:

    function cap(para1, para2){
        alert('here');
    }

但是我得到了這個錯誤:

ReferenceError: cap is not defined

任何想法?

解決方案是使用數據屬性

<a href="#" rel="like{{num}}" data-para1="Oh"  data-para2="{{somepara}}"> I like </a>

<script>
function cap(para1, para2){
    alert('here');
}
$("a[rel^='like']").click(function(){
   var para1 = this.dataset['para1'];
   var para2 = this.dataset['para2'];
   cap(para1, para2);
});
</script>

如果您更喜歡更結構化的方法,您也可以這樣寫:

<a href="#" rel="like{{num}}" data-params="{'para1':'Oh','para2':'{{somepara}}'}"> I like </a>

$("a[rel^='like']").click(function(){
   var params = this.dataset['params'];
   var para1 = params.para1;
   var para2 = params.para2;

請注意,如果文檔不是HTML5文檔,則必須使用jQuery的更兼容的數據功能 (但是現在幾乎沒有理由不使用HTML5 doctype):

var para1 = this.data('para1');

你可能想嘗試這個。

<a class="ilike" href="javascript:;" data-p1="abc" data-p2="123"> I like </a>

<script>
    function cap(para1, para2){
        alert('here');
    }

    $(function(){
        $('.ilike').click(function(){
            var $this = $(this);
            var p1 = $this.data('p1');
            var p2 = $this.data('p2');
            cap(p1, p2);
        });
    });

</script>

如果你想通過onclick來做,那就是1)你已經在錯誤的范圍內聲明你的函數或2)在函數聲明之前發生了另一個JS錯誤並導致它不被執行。

要解決范圍問題,你可以嘗試做window.cap = function(para1, para2) { ...

要查看是否存在任何錯誤,請嘗試使用firebug或任何瀏覽器開發人員工具,並檢查控制台下的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM