2010-05-10 2 views
0
function rp_marcadesmarcaFarm(valor) { 

    FM_log(3, "marcadesmarcaFarm called = "+valor); 

    for (i = 0; i < farmList.length; i++) { 

     var arr  = farmList[i].split("|"); 
     var xy   = arr[0].split(","); 
     var fvillageId = xy2id(parseInt(xy[0]), parseInt(xy[1])); 

     GM_setValue("farmAtivada_"+suffixLocal+fvillageId, valor); 
     GM_setValue("farmAtivada_"+suffixLocal+i, valor); 
    }; 

    reloadFarmTable(); 
}; 

function createLinkButton(text, title, jsFunction, value) { 

    var button  = dom.cn("a");  
    button.href  = "javascript:void(0)";  
    button.innerHTML = text;  
    button.title  = title; 

    if (jsFunction != null) {  
    button.addEventListener('click', jsFunction, false);  
    } 

    return button;  
} 

createLinkButton("X", T('CHECKFARM_M'), rp_marcadesmarcaFarm(true)); 

Очевидно, последний аргумент (rp_marcadesmarcaFarm (true)) при вызове createLinkButton не работает. Если я изменю на:Как передать аргумент в вызове функции?

createLinkButton("X", T('CHECKFARM_M'), rp_marcadesmarcaFarm); 

это работает. Итак, как я могу передать (истинную) переменную в третий аргумент createLinkButton?

ответ

5
createLinkButton("X", T('CHECKFARM_M'), function() {rp_marcadesmarcaFarm(true)}); 
+0

спасибо, что сделал трюк !! – FernandoSBS

1

createLinkButton ждет функции, но rp_marcadesmarcaFarm(true) вызывает функцию и фактически передать возвращаемое значение.

Что вы хотите, анонимная функция, которая будет вызывать rp_marcadesmarcaFarm(true) и передать в createLinkButton

createLinkButton("X", T('CHECKFARM_M'), function(){ rp_marcadesmarcaFarm(true); }); 
+0

Причина, когда я нажимаю кнопку, вызывает эту функцию, которая делает вещи. – FernandoSBS

Смежные вопросы