我有一个像确认一样的弹出式div,如下所示
<div class='pop'>
check me
<span class="spok">Ok </span>
<span class="spcancel">cancel </span>
</div>
现在这个popUp会在某些情况下打开,点击按钮我想将一些值返回到父函数
按钮事件
$(".spok").click(function(){
return 'OK';
});
$(".spcancel").click(function(){
return 'CANCEL';
});
showPop方法
function showpop (){
$('.pop').show();
}
现在这样打电话
var retval = showpop()
alert(retval);
但似乎我没有接近我的要求。
小提琴上的代码
更新
能够回电功能但.... 当我试图隐藏弹出窗口时,它会多次报警。在下拉列表中选择是或否,然后在单击确定或取消后,两次或三次,您将看到效果
更新了小提琴
[Fiddle2][2]
答案 0 :(得分:4)
对话框的操作&amp;按钮是异步的。使用回调(例如传递给对话框)或事件来广播结果。一种方法是为弹出窗口提供一个回调函数,该回调函数将被调用:
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-
属性):