Переменная Javascript в Jquery DataTables

Я не уверен, относится ли этот вопрос к Javascript или больше к Jquery. И это кажется действительно простым, но я застрял.

Я пытаюсь назначить переменную javascript для функции jquery DataTables.

[script]
//Not working

var counter = 0;
function testfunction(){
doSomething();
counter++;        
}

$(function() {

var newId = "#table" + counter;

$(newId).live('dblclick', function () {
    alert("test");
});

});

[/script]

$ ("# table") относится к идентификатору таблицы в моем html. Однако это не работает. Ниже версия работает вместо.

[script]
//Working version

$(function() {

//var newId = "#table1"

$("#table1").live('dblclick', function () {
    alert("test");
});

});
[/script]

Как я могу решить эту проблему? Благодарю.

2 ответа

Вы никогда не вызываете testfunction для увеличения значения счетчика. Следовательно, newId будет иметь значение table0 вместо table1.

Ваш код должен выглядеть примерно так:

var counter = 0;
function testfunction(){
    doSomething();
    counter++;        
}

$(function() {

    testfunction(); //Call testfunction to increment the counter.

    var newId = "#table" + counter;

    $(newId).live('dblclick', function () {
        alert("test");
    });

});

Вот рабочий пример JsFiddle.

Это довольно сложно сказать, но вот моя попытка исправить это, попробуйте ниже

[script]
var counter = 1;
var newId = "#table" + counter;
$(function() {    

$(newId).live('dblclick', function () {
    alert("test");
});

});

[/script]

Если это работает, то это потому, что вы используете переменные локально, и "live" больше не может получить доступ к переменной. Вы пробовали альтернативную функцию, такую ​​как $(newId).click().

Другие вопросы по тегам