Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   вызов функции в строке (https://javascript.ru/forum/misc/20654-vyzov-funkcii-v-stroke.html)

Ponomareva_AS 12.08.2011 15:56

вызов функции в строке
 
Доброго времени суток.
Есть код, который не совсем работает:
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] + ");' - вот это функцию не вызывается. Как правильно вызвать эту функцию?

devote 12.08.2011 16:01

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); 
}

melky 12.08.2011 16:04

onclick='delPers(" + data.Data[1][i][0] + ");'


это плохая практика.

Ponomareva_AS 12.08.2011 16:04

вопрос решен) ошибка была в другом месте)

Ponomareva_AS 12.08.2011 16:10

а какая хорошая?

Ponomareva_AS 12.08.2011 16:15

вы имеете ввиду чтото типа этого:

var mylink = $("<a />",
{
onclick: delPers()
})
str.append(mylink);


честно писала на память могла ошибится, но суть такая или вы что-то другое имеете ввиду?

melky 12.08.2011 16:49

вы же используете 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);
});

Ponomareva_AS 12.08.2011 17:41

ну я ещё не до конца освоилась в jq) спасибо за разъяснение!


Часовой пояс GMT +3, время: 12:56.