Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Javascript函数中打开QTip2模式窗口_Javascript_Jquery_Qtip2 - Fatal编程技术网

从Javascript函数中打开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

我正在使用Qtip2创建模式窗口,代码如下:

$('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;
}