从Javascript函数中打开QTip2模式窗口
我正在使用Qtip2创建模式窗口,代码如下:从Javascript函数中打开QTip2模式窗口,javascript,jquery,qtip2,Javascript,Jquery,Qtip2,我正在使用Qtip2创建模式窗口,代码如下: $('a#my-link-id').qtip({ content: { text: $('#my-modal-content'), title: "My Modal Window Title", button: true }, position: { my: 'center', at: 'center', target: $(win
$('a#my-link-id').qtip({
content: {
text: $('#my-modal-content'),
title: "My Modal Window Title",
button: true
},
position: {
my: 'center',
at: 'center',
target: $(window)
},
show: {
event: 'click',
solo: true,
modal: {
on: true
}
},
hide: {
event: false
},
style: 'qtip-modal qtip-shadow'
});
当我点击id为my link id
的链接时,此模式将被激活
但是,我想使用链接中的OnClick
功能激活此模式。假设我有以下链接:
<a id="my-link-id" href="#" onClick="javascript:getModalWindow('my-link-id');return false;">Fire Modal</a>
上面的代码并不像我期望的那样工作。发生的事情是,点击会不断地(不是一次)被触发,直到我的浏览器(Chrome)用“哇,啪!”的一声停止错误。而且模态也不会被激活
我需要做什么才能让它工作 我用下面的方法解决了这个问题:
window._getModalWindow = function(link_id)
{
var elem_link = $('a#'+link_id);
var modal_init_bool = elem_link.data('modal_init');
switch(true)
{
case (modal_init_bool !== true):
elem_link.qtip({
content: {
text: 'Modal Window Content',
title: 'Modal Window Title',
button: true
},
position: {
my: 'center',
at: 'center',
target: $(window)
},
show: {
event: 'modal',
solo: true,
modal: {
on: true
}
},
hide: {
event: false
},
style: 'qtip-modal qtip-shadow'
});
elem_link.data('modal_init', true);
break;
}
elem_link.trigger('modal');
return false;
}
我试着用“点击”而不是“模态”,但当我这么做的时候,它一直在发射多次,我真的不明白为什么。为什么??对于jQuery,不需要使用这些内联事件处理程序。为什么不使用您已有的
.on('click')
处理程序呢?我需要先完成一些其他代码处理后启动QTip模式,这样我就不能像上面那样使用传统的click处理程序了。另外,click
事件的触发器触发了多次,但不确定原因。无论是什么原因,它与使用jQuery.on('click')
而不是内联的onClick
无关。这是同一事件。不同的是你的代码。我必须向你展示整个代码集,让你明白我的意思。根据我的分层代码,它与click处理程序有关,特别是传统上QTip2的工作方式
window._getModalWindow = function(link_id)
{
var elem_link = $('a#'+link_id);
var modal_init_bool = elem_link.data('modal_init');
switch(true)
{
case (modal_init_bool !== true):
elem_link.qtip({
content: {
text: 'Modal Window Content',
title: 'Modal Window Title',
button: true
},
position: {
my: 'center',
at: 'center',
target: $(window)
},
show: {
event: 'modal',
solo: true,
modal: {
on: true
}
},
hide: {
event: false
},
style: 'qtip-modal qtip-shadow'
});
elem_link.data('modal_init', true);
break;
}
elem_link.trigger('modal');
return false;
}