javascript
  • jquery
  • html
  • css
  • twitter-bootstrap
  • 2016-10-12 224 views 0 likes 
    0

    我有下面的html元素,onclick()函數動態附加。 我們打電話時出現錯誤。傳遞的名稱變量將類似於「ST-123」。它引發錯誤,如「ST」未定義。 你能幫忙嗎?將參數傳遞給onclick函數dymamically

    hubName =「ST-123」;

    IdCell.append("<button type='button' class='btn-link' style='float:right; margin-right:-6px; margin-top:-11px;' onclick='unPair($(this),"+name+")'> 
    <img src='../images/link-minus.png'> </button>"); 
    

    這裏idCell是表格單元格中的一個。

    +6

    事情變得更容易事件處理程序屬於1999年。 – adeneo

    +0

    'unPair'是否返回一個函數? – nem035

    +4

    'onclick ='unPair($(this),「+ name +」)''會評估爲'onclick ='unPair($(this),ST-123)''。由於'ST-123'不是一個字符串,它會嘗試從ST中減去123。如果ST不存在,它會拋出異常。 – Ivar

    回答

    2

    您的問題是你的第二個參數是不是一個字符串。

    onclick='unPair($(this),"+name+")' 
    

    將評估爲

    onclick='unPair($(this),ST-123)' 
    

    由於ST-123不是字符串,它會嘗試從ST減去123。如果ST不存在,它會拋出異常。

    由於您不能輕易使用',因爲它會結束您的onclick屬性,因此您可以嘗試使用雙引號。但隨着你的字符串啓動,你需要添加一個反斜槓像這樣先逃避它:

    onclick='unPair($(this),\""+name+"\")' 
    

    這將評估這樣的:一旦你意識到在線

    onclick='unPair($(this),"ST-123")' 
    
    1

    你需要傳遞的價值字符串

    onclick=\"unPair($(this),'"+name+"')\" 
    

    ,或者您可以使用雙引號

    onclick='unPair($(this),\""+name+"\")' 
    
    +0

    第一個不會工作,因爲onclick函數會在第二個'''後停止。 – Ivar

    1

    使用更多的jQuery

    var button = $('<button />', { 
        type : 'button', 
        'class' : 'btn-link', 
        css  : { 
         float  : 'right', 
         marginRight : '-6px', 
         marginTop : '-11px' 
        }, 
        on  : { 
         click : function() { 
          unPair($(this), name); 
         } 
        } 
    }), 
        image = $('<img />', { 
         src : '../images/link-minus.png' 
    }); 
    
    
    IdCell.append(button.append(image)); 
    
    相關問題