首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将回调函数传递给onclick事件

将回调函数传递给onclick事件
EN

Stack Overflow用户
提问于 2012-01-27 05:26:43
回答 4查看 15K关注 0票数 1

我已经尝试了一段时间了,尝试了很多方法。它还是不能工作。

代码语言:javascript
复制
function popupConfirm(widtH, texT, callback){ 
var top=(window.innerHeight/2) - 100;
var left=(window.innerWidth/2) - (widtH/2);
var r="<div id='standard-modal' style='width:"+widtH+"px;top:"+top+"px;left:"+left+"px;'>";
        r+="<div id='standard-modal-header' style='width:"+(widtH-4)+"px;'>";
        r+="<strong>&rarr; &nbsp; Icon Box &nbsp; &larr;</strong>";
        r+="</div>";
        r+="<div id='standard-modal-message' style='width:"+(widtH-30)+"px;'>"+texT+"</div>";
            r+="<div id='button_wrapper'><div id='standard-modal-button' class='left_button' onclick='$(\"#standard-modal\").remove();' >CANCEL</div>";

            // following line attaches callback to onclick event        
            r+="<div id='standard-modal-button' class='right_button' onclick='callback();' >CONFRIM</div></div>";
        r+="<div style='clear:both;'></div></div>";

$('body').append(r);
}


popupConfirm(300,'blah blah' , function(){alert("finally");});    

理论上,我想让它在用户点击弹出窗口中的确认后发出警报……任何帮助都是非常感谢的。

其到控制台的日志‘回调未定义’

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-27 05:31:25

这是一个典型的作用域问题,当您将字符串附加到正文后,用户单击div时,onclick将尝试触发一个名为window.callback()的函数。而不是使用内联javascript,这通常不是一个好主意,总之是在html创建之后绑定click处理程序。

代码语言:javascript
复制
...
        // following line attaches callback to onclick event        
        r+="<div id='standard-modal-button' class='right_button'>CONFRIM</div></div>";
    r+="<div style='clear:both;'></div></div>";

    $('body').append(r);
    $('#standard-modal-button').bind('click', callback);
}
票数 1
EN

Stack Overflow用户

发布于 2012-01-27 05:34:18

我会使用click(),而不是尝试将回调函数放入函数中。

代码语言:javascript
复制
$('.right_button').on('click', function() {
    alert("finally");
});
票数 0
EN

Stack Overflow用户

发布于 2012-01-27 05:43:26

我甚至不知道从哪里开始告诉你要改变什么,除了所有的东西。首先,我将实际创建该div作为页面的一部分,并将其隐藏。当它应该显示的时候;您可以简单地执行$('#standard-modal').show();。然后,您可以按照其他答案中的建议进行操作,例如:

代码语言:javascript
复制
$('#cancel-btn').click(function(){
    alert('your message');
});

如果您仍然有问题,请查看jqueryUI http://jqueryui.com/demos/dialog/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9025579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档