Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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 加载包含相同jquery脚本的jquery脚本的页面_Javascript_Jquery - Fatal编程技术网

Javascript 加载包含相同jquery脚本的jquery脚本的页面

Javascript 加载包含相同jquery脚本的jquery脚本的页面,javascript,jquery,Javascript,Jquery,更新: 我试图更好地解释我的情况:(对不起,我很难用英语解释) 我有mainpage.asp包含10个div。 页面加载jquery并加载myfunction.js,其中document.ready中声明了以下函数: // toggle $("a.toggle-fx").click(function(){ var x=$(this).attr("id"); $("#x"+x).slideToggle(400); $(this).toggleClass('toggle-bt

更新:

我试图更好地解释我的情况:(对不起,我很难用英语解释)

我有mainpage.asp包含10个div。 页面加载jquery并加载myfunction.js,其中document.ready中声明了以下函数:

// toggle
$("a.toggle-fx").click(function(){
    var x=$(this).attr("id");
    $("#x"+x).slideToggle(400);
    $(this).toggleClass('toggle-btn-active');
    }
);
每个div都是这样的:

<a href="javascript:void(0)" class="toggle-btn toggle-fx" >open info</div>
<div class="toggle-content" id="xtoggle_[id]">
    [html content]
</div>
这很好。每次单击loadmore按钮,我都会显示10个新的div

那么,有什么问题?问题出现在loadmore.asp页面中。我不知道如何让新添加的10个div使用主页中声明的切换函数

  • 如果在loadmore.asp中我加载jquery和myfunction.js,则切换函数可以工作,但一次单击就会触发两次(框会立即打开和关闭)。我想原因是我加载了两次切换函数(在loadmore.asp的mainpage.asp中)

  • 如果在loadmore.asp中我没有加载/包含jquery和myfunction.js,那么toogle函数在新的10个div上根本不起作用

所以问题是,当我使用$.ajax加载一个新内容并将其附加到主页面上时,jquery函数和调用主页面中声明的其他函数没有共享

我的目标是使用$(“a.toggle-fx”)。在加载和附加的内容中单击(function()


谢谢

我必须添加$(“a.toggle-fx”)。单击功能在$(文档)中.ready.you can's appnend the Html/dom?也在上面的问题中。乍一看,toggleClass和SlideToggle似乎具有相同的功能。您的问题不太清楚到底发生了什么,可能提供了更多的代码。但我认为您应该阅读
event.stopPropagation()
这可能会解决这个问题。我更新了这个问题,希望问题更清楚。@Shobhit Walia:toggleclass只会更改按钮的外观(打开/关闭)。单击事件处理程序不会绑定到AJAX加载的内容,因为它们在页面首次加载时不存在。您需要使用()要将事件处理程序绑定到动态添加的元素,这意味着必须重写事件处理程序在
myfunction.js中的绑定方式。
function loadmore(pag,pagnum,qcry){
    $.ajaxSetup ({cache: false});
    $.ajax({    
        type: "POST",
        url: "loadmore.asp",
        dataType: "html",
        success: function(msg)
        {
            $("#moreresults").append(msg);
        },
            error: function()
        {
            alert("loading failed.");
        }       
    });//ajax
}