2012-08-06 72 views
0

好的,所以我有一個變量,一個函數和一個無序列表。我運行此代碼:用插入HTML中的參數調用Javascript函數

var someid = '501bc5210642741838000000'; 
var liststring = '<li class="ui-state-default" id="'+someid+'">'+ 
       '<button type="button" class="del" onclick="newfunction('+someid+');" >X</button>Slide</li>'; 
$('ul').append(liststring); 

此代碼是重複多次的someid的不同值。

功能newfunction()看起來是這樣的:

var newfunction = function(someid){ 
$('#'+someid).remove(); 
//some other stuff; the above is the important bit 
} 

據說這是爲了讓它使得單擊按鈕時,它傳遞someid到newfunction(),其中有jQuery的代碼刪除列表包含DOM中按鈕的元素。

多數民衆贊成擰起來的一點是,我封閉的列表元素等在一個字符串將其追加到列表中HTML的事實。我驗證了代碼的工作原理 - 我手動編寫了兩個列表元素,並且它運行得非常完美。可能有一些我錯過的語法 - 我錯過了什麼?

回答

1

嘗試添加引號圍繞您的變數,因此打印作爲一個字符串,而不是變量名。

'<button type="button" class="del" onclick="newfunction(\''+someid+'\');" >X</button>Slide</li>'; 
0

你應該能夠只使用live - 方法:

$(function() { 
    $('li.ui-state-default').live('click', function() { 
     $(this).remove(); 
    }); 
}); 

通知書的,不贊成這種方式與jQuery,現在on使用的新版本。

更多信息here

LG,

FLO

1

嘗試把someid在引號像

onclick="newfunction(\'' + someid + '\');" 
+0

ERMEHGERD!有效! – CalvinCopyright 2012-08-07 02:02:22