如何使用phonegap navigator.notification.confirm的全局变量?

时间:2012-01-31 08:29:27

标签: javascript jquery cordova global-variables

我遇到这种情况:

<a href="#" onClick="submitNotification(1);">click1</a>
<a href="#" onClick="submitNotification(2);">click2</a>
<a href="#" onClick="submitNotification(3);">click3</a>

function submitNotification(cdata){
    navigator.notification.confirm(
            'do you like '+cdata+' option ',
            submit,
            'notice',
            'Yes,No'
    );

function submit(button){    
    if (button == 1){
        alert(id); //or alert(cdata);
    } else if (button == 2){
        ...
    }
}

所以,我点击了一个链接,12 ...发送到submitNotification我收到了一封邮件:do you like 1 optiondo you like 2 option或者...取决于我点击的链接。

此函数调用submitVote并以某种方式向其发送button var。 yes表示1no表示2

问题是我无法从原始链接获得idcdata。实际上它们是值3(最后一个链接)。

我习惯做:

function submitNotification(cdata){
    navigator.notification.confirm(
            'do you like '+cdata+' option ',
            submit(cdata),
            'notice',
            'Yes,No'
    );

function submit(id){    
    if (button == 1){
        alert(id);
    } else if (button == 2){
        ...
    }
}

在这种情况下,我收到id警报,但按钮值不可用。

任何想法如何访问idcdata,无论var是什么?有没有办法将buttoncdata变量发送到submit函数

注意:链接是在$.each循环中创建的。

感谢

2 个答案:

答案 0 :(得分:1)

希望这有助于(在所有代码重写之后:))。

请注意,submitNotificationsubmit都是单独的函数(未嵌套),var buttonClicked在全局范围内定义。

var buttonClicked = 0;

function submitNotification(cdata){
    buttonClicked = cdata;

    navigator.notification.confirm(
            'do you like '+cdata+' option ',
            submit,
            'notice',
            'Yes,No'
    );
 }

function submit(button){    
    if (buttonClicked === 1){
      doWhatYouWant(); // .. but think about the Omen
    }
}

答案 1 :(得分:0)

function submitNotification(cdata){
    navigator.notification.confirm(
            'do you like '+cdata+' option ',
            submit,
            'notice',
            'Yes,No'
    );

function submit(button){    
    if (button == 1){
        alert(id);
    } else if (button == 2){
        ...
    }
}