[英]Dynamically create a onClick event handler with jQuery
我有以下代碼從稱為“數據”的數組構建表。 我想將javascript調用添加到另一個名為backend_getMovieData的方法中,但是我不知道如何從movie._id構建字符串。 我從示例代碼中收到錯誤“未捕獲的SyntaxError:意外的令牌}”。
data.forEach(function(movie) {
$("#shows").find('tbody')
.append($('<tr>')
.append($('<td>' + movie._id + '</td>'))
.append($('<td>' + movie.total + ' times</td>'))
.append($('<td><button class=\'btn btn-success\' onClick=backend_getMovieData(' + movie._id + ');>Show times</button></td>')));
});
我認為您的函數需要一個字符串。
做這個:
data.forEach(function(movie) {
$("#shows").find('tbody')
.append($('<tr>') <br />
.append($('<td>' + movie._id + '</td>'))<br />
.append($('<td>' + movie.total + ' times</td>'))<br />
.append($('<td><button class=\'btn btn-success\' onClick="backend_getMovieData(\'' + movie._id + '\')";>Show times</button></td>')));
});
您需要用引號將其包裝。
jQuery可以更精細地完成它:
$("#shows").on('click', 'button.btn-success', function() { backend_getMovieData(this.id) });
data.forEach(function(movie) {
$("#shows").find('tbody')
.append($('<tr>') <br />
.append($('<td>' + movie._id + '</td>'))<br />
.append($('<td>' + movie.total + ' times</td>'))<br />
.append($('<td><button class="btn btn-success" id="' + movie._id + '">Show times</button></td>')));
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.