[英]jQuery append onclick function doesn't work
我有附加功能的問題。 此代碼無法正常工作。
$(element).append("<a onclick='test('test')'> <i class='fa fa-spin fa-pencil' aria-hidden='true'></i></a>");
測試功能:
function test(value)
{
alert(value);
}
我懷疑問題與 onclick 功能有關。
你必須在里面轉義撇號:
$(element).append("<a onclick='test(\"test\")'> <i class='fa fa-spin fa-pencil' aria-hidden='true'></i></a>");
並確保test()
是全局定義的(例如,不在文檔內部准備好)。
下面是一個例子:
window.test = function(value){ alert(value); }; $('div').append("<a onclick='test(\\"test\\")'>click me</a>");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div></div>
正如評論中提到的,您不能像當前那樣在字符串中嵌套類似的引號。 你需要用反斜杠來逃避它們:
function test(value) { alert(value); } var element = $('body'); $(element).append("<a onclick='test(\\"test\\")'> <i class='fa fa-spin fa-pencil' aria-hidden='true'></i>Click Me</a>");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
使用 `quote 而不是 '
我在這里創建了一個 jsbin。 我希望這就是你想要做的
http://jsbin.com/wicanok/edit?html,js,output
$('#element').append("<a onclick='test(`test`)'> <i class='fa fa-spin fa-pencil' aria-hidden='true'>Hi</i></a>");
您最好完全去掉內聯 JS 並使用 jQuery 添加事件偵聽器(使用事件委托,因為您要向 DOM 添加新元素)。
$(element).append('<a class="test">...');
$(document).on('click', '.test', function () {
test('test');
});
你可以試試這個:
$(element).append("<a onclick='test('test')' class="your_class"> <i class='fa fa-spin fa-pencil' aria-hidden='true'></i></a>");
$(document).on('click',".your_class", function(){
//Write here your code!
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.