繁体   English   中英

jQuery在单击按钮时返回父函数

[英]Jquery return to parent function on button click

我有一个弹出div,如确认,如下所示

<div class='pop'>
    check me
    <span class="spok">Ok </span>
    <span class="spcancel">cancel </span>
</div>

现在,此弹出窗口将在某些条件下打开,然后单击按钮,我想将一些值返回给父函数

按钮事件

$(".spok").click(function(){
    return 'OK';
});
$(".spcancel").click(function(){
    return 'CANCEL';
});

showPop方法

function showpop (){
   $('.pop').show();

}

现在这样打电话

var retval = showpop()
alert(retval);

但似乎我离我的要求还差得远。

小提琴上的代码

小提琴

更新

可以回调该函数,但是....当我尝试隐藏弹出窗口时,它会被调用多次。 在下拉菜单中选择是或否,然后单击确定或取消两次或三次,您将看到效果

更新的小提琴

[Fiddle2][2]

对话框和按钮的操作是异步的。 使用回调(例如传递给对话框)或事件来广播结果。 一种方法是提供对您的弹出窗口的回调,并返回结果:

function showpop (onclose){
   $('.pop').show();
    $(".spok").click(function(){
        onclose('OK');
    });
    $(".spcancel").click(function(){
        onclose('CANCEL');
    });   
}

$(document).ready(function(){
    var retval = showpop(function(retval){
        alert(retval);
    });
}); 

JSFiddle: http : //jsfiddle.net/TrueBlueAussie/gp5emrm4/4/

注意:单击的事件处理程序应更特定于对话框(可能使用委托事件,而是附加到弹出窗口):

function showpop (onclose){
   $('.pop').show().on('click', 'span', function(){
        onclose($(this).attr('class'));   // or some other property of the button
    });
}

更实际的示例(使用data-属性):

JEFiddle: http : //jsfiddle.net/TrueBlueAussie/gp5emrm4/5/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM