Переменная Javascript в Jquery DataTables - PullRequest
1 голос
/ 24 мая 2011

Я не уверен, относится ли этот вопрос к 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 ]

0 голосов
/ 14 июня 2011

Вы никогда не вызываете 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.

0 голосов
/ 24 мая 2011

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

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

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

});

[/script]

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

...