Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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
当用户单击选项卡时,如何进行ajax调用? 当用户单击选项卡时,如何进行ajax调用? 如何处理html响应并将其显示在选项卡中? 如何将JavaScript事件绑定到响应中得到的html上?_Javascript_Jquery_Ajax_Ckeditor - Fatal编程技术网

当用户单击选项卡时,如何进行ajax调用? 当用户单击选项卡时,如何进行ajax调用? 如何处理html响应并将其显示在选项卡中? 如何将JavaScript事件绑定到响应中得到的html上?

当用户单击选项卡时,如何进行ajax调用? 当用户单击选项卡时,如何进行ajax调用? 如何处理html响应并将其显示在选项卡中? 如何将JavaScript事件绑定到响应中得到的html上?,javascript,jquery,ajax,ckeditor,Javascript,Jquery,Ajax,Ckeditor,我知道如何使用jQueryUI选项卡以及如何进行ajax调用 我不知道当用户在编辑器中单击tab时如何触发Ajax调用 这是我写的,在CKEditor中的图像对话框上显示一个“测试”选项卡 CKEDITOR.on( 'dialogDefinition', function( ev ) { // Take the dialog name and its definition from the event // data. var dialogName = ev.data.n

我知道如何使用jQueryUI选项卡以及如何进行ajax调用

我不知道当用户在编辑器中单击tab时如何触发Ajax调用

这是我写的,在CKEditor中的图像对话框上显示一个“测试”选项卡

CKEDITOR.on( 'dialogDefinition', function( ev )
{
    // Take the dialog name and its definition from the event
    // data.
    var dialogName = ev.data.name;
    var dialogDefinition = ev.data.definition;

    // Check if the definition is from the dialog we're
    // interested on (the "Link" dialog).
    if ( dialogName == 'image' )
    {

        // Add a new tab to the "Link" dialog.
        dialogDefinition.addContents({
            id : 'customTab',
            label : 'Test',
            accessKey : 'M',
            elements : [
                {
                    id : 'myField1',
                    type : 'text',
                    label : 'My Text Field'
                },
                {
                    id : 'myField2',
                    type : 'text',
                    label : 'Another Text Field'
                },
                {
                    type : 'html',
                    html : '<input type="text" name="query" id="query" class="left new-search-box file_dialog_query" style="width:300px !important;" defaulttext="Search Files" value="Search Files">'
                },
            ]
        });

    }
});

要实现这一点,请遵循以下步骤

创建一个包含两个部分a和B的html文件。a包含选项卡,B包含内容。默认情况下,使选项卡1处于活动状态

单击选项卡捕获单击事件,并在其中调用Ajax以获取数据。在成功响应中,用数据替换b内容。同时更改选项卡的样式,使新选项卡处于活动状态

您可以通过jQuery.ajax方法进行ajax调用,在该方法中,您可以将url传递到您必须从中获取数据的位置。在成功响应中,您将获得Url返回的所有数据

您不必为此页面上的新内容绑定JavaScript事件。您可以将其绑定到html中,在执行Ajax调用时Url将返回html。
希望对您有所帮助。

对于此元素,请使用jQuery或inline定义事件

jQuery;例如,elemtn的id=tab

$("#tab").click(function(){
    //ajax call
});
内联

<div onclick="ajaxCallFunction()">Tab</div>
<script>//you have to define this function somewhere
function ajaxCallFunction(){
//define ajax call
}
</script>
对于绑定事件,在代码中创建HTML结构可能更安全,但最好将响应设置为JSON。在使用html解决方案时,我建议在相同的函数中设置此innerHtml,但在设置innerHtml调用函数后设置事件

比如说

//if you can get element by ID
var container=document.getElementById('container id').innerHtml=response;
//if this structured HTML have element <div id="x"></div>
$("#x").click(function(){
//OR any other event, check jquery documentation for other events
});
//IMPORTANT IS THAT YOU CALL THIS SETTING OF EVENT AFTER YOU ADDED NEW HTML

你能创建一个JSFIDLE吗?阅读基本的ajax图腾怎么样?在标签中添加一个导致ajax请求的点击事件,将来自ajax请求的响应附加到标签中,然后附加事件。例如,我猜标签插件会在更改时发出一个事件。侦听该事件并启动ajax调用。可能重复
//if this structured HTML have element <div id="x"></div>
$("#x").click(function(){
//OR any other event, check jquery documentation for other events
});
//IMPORTANT IS THAT YOU CALL THIS SETTING OF EVENT AFTER YOU ADDED NEW HTML