Jquery 为什么我';我无法获得警报?
我需要在用户单击相应按钮时发出警报 这是我的插件:Jquery 为什么我';我无法获得警报?,jquery,message,alert,Jquery,Message,Alert,我需要在用户单击相应按钮时发出警报 这是我的插件: (function($){ // Defining our jQuery plugin $.fn.Message= function(prop){ // Default parameters var options = $.extend({ height : "250", width : "500", auto
(function($){
// Defining our jQuery plugin
$.fn.Message= function(prop){
// Default parameters
var options = $.extend({
height : "250",
width : "500",
autoclose:false,
type: "Success",
success: function (result) { },
title:"JQuery Modal Box Demo",
description: "Example of how to create a modal box.",
top: "20%",
left: "35%",
imagePath: 'images/success.png',
},prop);
return this.click(function(e){
add_block_page();
add_popup_box();
setTimeout(function() {
$('.JMesg').animate({top:'toggle'},80);
},300);
if(options.autoclose==true)
{
setTimeout(function() {
$('.close').trigger('click');
},4000);
}
});
function add_block_page(){
var block_page = $('<div class="page"></div>');
$(block_page).appendTo('body');
}
function add_popup_box(){
var pop_up = $('<div class="Message"><a href="#" class="close"></a><div class="header"><h3>' + options.title + '</h3></div><div class="mainbody"><table><tr><td><img src='+ options.imagePath +' class="mesgicon"/></td><td><p class="bodytext">' + options.description + '</p></td></tr></table></div><div class="footer"><a href="#" class="btn-close"><span>close</span></a></div></div>');
$(pop_up).appendTo('.page');
if(options.type=="Success"){
var buttons =$('<a href="#" class="btn-Ok"><span>OK</span></a>');
$(buttons).appendTo('.footer');
}
if(options.buttons=="Error"){
var buttons =$('<a href="#" class="btn-Ok"><span>OK</span></a>');
$(buttons).appendTo('.footer');
}
if(options.buttons=="Info"){
var buttons =$('<a href="#" class="btn-Ok"><span>OK</span></a>');
$(buttons).appendTo('.footer');
}
if(options.buttons=="Confirm"){
var buttons =$('<a href="#" class="btn-Yes"><span>Yes</span></a><a href="#" class="btn-No"><span>No</span></a><a href="#" class="btn-Cancel"><span>Cancel</span></a>');
$(buttons).insertBefore('.footer');
}
if(options.type=="Alert"){
var buttons =$('<a href="#" class="btn-Ok"><span>OK</span></a>');
$(buttons).appendTo('.footer');
}
$('.close').click(function(){
$(this).parent().animate({top:'toggle'},80);
setTimeout(function() {
$('.page').fadeOut().remove();
},400);
});
$('.btn-close').click(function(){
$(this).parent().parent().animate({top:'toggle'},80);
setTimeout(function() {
$('.page').fadeOut().remove();
},400);
});
$('.btn-Ok').click(function (e){
e.preventDefault();
var value = $(this).val();
options.success(value);
$(this).parent().parent().animate({top:'toggle'},80);
setTimeout(function() {
$('.page').fadeOut().remove();
},400);
});
}
return this;
};
})(jQuery);
(函数($){
//定义jQuery插件
$.fn.Message=函数(prop){
//默认参数
变量选项=$.extend({
高度:“250”,
宽度:“500”,
自动关闭:错误,
键入:“成功”,
成功:函数(结果){},
标题:“JQuery模式框演示”,
描述:“如何创建模式框的示例。”,
顶部:“20%”,
左:“35%”,
imagePath:'images/success.png',
},道具);
返回此项。单击(函数(e){
添加块页面();
添加弹出框();
setTimeout(函数(){
$('.JMesg').animate({top:'toggle'},80);
},300);
if(options.autoclose==true)
{
setTimeout(函数(){
$('.close')。触发器('click');
},4000);
}
});
函数添加\块\页(){
var block_page=$('');
$(块_页).appendTo('body');
}
函数添加\弹出\框(){
var pop_up=$(''+options.title+''+options.description+'
');
$(弹出).appendTo('.page');
if(options.type==“Success”){
变量按钮=$('');
$(按钮).appendTo('.footer');
}
如果(选项.按钮==“错误”){
变量按钮=$('');
$(按钮).appendTo('.footer');
}
如果(选项按钮==“信息”){
变量按钮=$('');
$(按钮).appendTo('.footer');
}
如果(选项按钮==“确认”){
变量按钮=$('');
$(按钮).insertBefore('.footer');
}
如果(options.type==“警报”){
变量按钮=$('');
$(按钮).appendTo('.footer');
}
$('.close')。单击(函数(){
$(this.parent().animate({top:'toggle'},80);
setTimeout(函数(){
$('.page').fadeOut().remove();
},400);
});
$('.btn close')。单击(函数(){
$(this.parent().parent().animate({top:'toggle'},80);
setTimeout(函数(){
$('.page').fadeOut().remove();
},400);
});
$('.btn确定')。单击(函数(e){
e、 预防默认值();
var值=$(this.val();
选择。成功(价值);
$(this.parent().parent().animate({top:'toggle'},80);
setTimeout(函数(){
$('.page').fadeOut().remove();
},400);
});
}
归还这个;
};
})(jQuery);
这就是我所说的:
<script type="text/javascript">
$(document).ready(function () {
$('.SuccessMessage').Message({
type:"Success",
autoclose: false,
imagePath: 'images/success.png',
title: 'Hoorah!',
description: 'Success!.',
success: function (result) {
if (result == "OK") {
alert("One cup of coffee coming right up!");
}
}
});
</script>
$(文档).ready(函数(){
$('.SuccessMessage')。消息({
键入:“成功”,
自动关闭:错误,
imagePath:'images/success.png',
标题:“万岁!”,
描述:'成功!',
成功:功能(结果){
如果(结果=“确定”){
警惕(“一杯咖啡马上就上来了!”);
}
}
});
传递给success
回调的.btn Ok
的值为空字符串。请尝试更改单击处理程序以传递锚定标记的文本()
:
$('.btn-Ok').click(function (e){
e.preventDefault();
var value = $(this).text(); // pass text instead of value
options.success(value);
$(this).parent().parent().animate({top:'toggle'},80);
setTimeout(function() {
$('.page').fadeOut().remove();
},400);
});
或硬编码传递给success
回调的值:
options.success("OK");
如果您发出警报(结果);?@MyStream它没有显示任何内容,弹出窗口就消失了。您介意从中创建一个JSFIDLE吗?您缺少了一个
)在document.ready.com上使用类似$('.close')的选择器对于与其他元素的冲突是危险的。将父元素缓存到$blockPage,然后使用$blocpage.find('.close')将所有事件隔离到模块或模块的其他实例