вызов функции в строке
Доброго времени суток.
Есть код, который не совсем работает:
for (var i = 0; i <= data.Data[1].length; i++) {
var str = $("<tr><td>" + data.Data[1][i][0] + "</td><td>" + data.Data[1][i][1] + "</td><td>" + data.Data[1][i][2] + "</td><td class='remove'><a href='' onclick='delPers(" + data.Data[1][i][0] + ");'>remove</a></td></tr>");
tab_cont.append(str);
}
onclick='delPers(" + data.Data[1][i][0] + ");' - вот это функцию не вызывается. Как правильно вызвать эту функцию? |
for (var i = 0; i <= data.Data[1].length; i++) {
var str = $("<tr><td>" + data.Data[1][i][0] + "</td><td>" + data.Data[1][i][1] + "</td><td>" + data.Data[1][i][2] + "</td><td class='remove'><a href='' onclick='delPers(" + data.Data[1][i][0] + "); return false;'>remove</a></td></tr>");
tab_cont.append(str);
}
|
onclick='delPers(" + data.Data[1][i][0] + ");'
это плохая практика. |
вопрос решен) ошибка была в другом месте)
|
а какая хорошая?
|
вы имеете ввиду чтото типа этого:
var mylink = $("<a />",
{
onclick: delPers()
})
str.append(mylink);
честно писала на память могла ошибится, но суть такая или вы что-то другое имеете ввиду? |
вы же используете jq. так используйте её по максимуму. плюс, вы пишите на js, а не верстаете на html.
хотя бы так, но я могу ошибиться в красной строчке... а могу и не ошибаться. замыкания на вид трудно воспринимаю :)
$.each( data.Data[1], function(i,a){
// a -> data.Data[1][i]
var b = $("tr";)
$.each(a, function(n, m){
b.append( $("td").html(m) );
});
// <td class="remove"><a onclick="delPers.....">....
b.append( $("td").addClass("remove").html("remove").click(function(){
*!*
delPers( a[0] );
*/!*
}) );
tab_cont.append(b);
});
|
ну я ещё не до конца освоилась в jq) спасибо за разъяснение!
|
| Часовой пояс GMT +3, время: 04:03. |