-5

我想在 Jquery 函数中返回 var“Page”:

var Page ;

 $('#Montant').dblclick(function(){

     $("#Encadrement_Encaissement_Menu_Creation").show();

     return Page = 'Crea_Bouton';
 }); 

alert(Page); //does not work

但它不起作用。

目标不是提醒 var Page。

在另一页我有: if(Page == 'Crea_Bouton') { //Action }

所以, Page 必须是一个全局变量

你能帮我吗?

4

3 回答 3

4

这里有几个问题。首先,Pageandpage是两个不同的变量,但假设您将它们命名为相同的 - 您的代码仍然无法工作。

问题是,您的事件处理程序不会立即运行,它只会在双击发生时运行。page在这种情况下,在事件之外定义没有任何意义。发生的情况是它首先命中var page;,然后它注册一个事件(但不运行事件函数),然后警告一个空变量(因为尚未触发事件)。

当您触发 dblclick 事件时,该警报不会被执行。

尝试这个:

var page;
$('#Montant').dblclick(function(){

  $("#Encadrement_Encaissement_Menu_Creation").show();

  page = 'Crea_Bouton';
});

$('#anotherdiv').click(function(){
  if(page === 'Crea_Bouton'){
    alert("yep!");
  }else{
    alert("Something else")
  }
})

现在,当你#anotherdiv被点击时,它只会提示“是的!” 如果原始Montantdiv 已被首先双击。否则它会做其他事情(或者如果你省略 ,则什么都不做else)。

这是一个示例 jsfiddle:

http://jsfiddle.net/Wb9Ba/

如果您立即单击第二个按钮,它会显示“其他”,但如果您双击第一个按钮,然后单击第二个按钮,它会显示“是的!”

于 2013-10-25T19:54:47.670 回答
1

像 jQuery 一样使用“回调”函数:

function onReturn(page) {
   // Process your returned value
   if (page == 'Crea_Bouton') {
       // Action
       alert(page);
   }
}

$('#Montant').dblclick(function(){
   $("#Encadrement_Encaissement_Menu_Creation").show();
   var page = 'Crea_Bouton';
   onReturn(page);
});

或者在 dblclick 回调中处理您的值:

$('#Montant').dblclick(function(){
   $("#Encadrement_Encaissement_Menu_Creation").show();
   var page = 'Crea_Bouton';

   // Do something with my page
   if (page == 'Crea_Bouton') {
       // Action
       alert(page);
   }
});
于 2013-10-25T20:01:40.337 回答
0

由于里面的匿名方法dblclick是异步的,所以不可能返回一些东西。

相反,您可以创建一个新函数:

var page;

$('#Montant').dblclick(function () {
    $("#Encadrement_Encaissement_Menu_Creation").show();
    display('Crea_Bouton');
}); 

function display(page) {
    alert(page);
    // ...
}
于 2013-10-25T20:02:44.963 回答