Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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
在阴影框内调用Jquery_Jquery_Shadowbox - Fatal编程技术网

在阴影框内调用Jquery

在阴影框内调用Jquery,jquery,shadowbox,Jquery,Shadowbox,我有一个由jquery调用的简单阴影框: $('#statsButton').click(function() { thisContent = $('#userStats').html(); Shadowbox.open({ content: thisContent, player: "html" }); }); 我有一个div,在$('#userStats')对象中,单击时应发出警报: $("#submitPosition").clic

我有一个由jquery调用的简单阴影框:

$('#statsButton').click(function() {
    thisContent = $('#userStats').html();
    Shadowbox.open({
        content: thisContent,
        player: "html"
    });
});
我有一个div,在
$('#userStats')
对象中,单击时应发出警报:

$("#submitPosition").click(function(e) {
        alert('test');
});
但当我点击时,什么也没发生。上述两个函数都包装在各自的文档就绪块中。我在脚本开始时调用了
Shadowbox.init
,效果非常好。只是它忽略了内部的jQuery事件。有人能帮忙吗


简要回顾:基本上我有阴影盒和HTML播放器。我希望jQuery在该HTML播放器中发挥预期的作用。

如果要将内容动态加载到容器中,则应使用jQuery
on()
将事件绑定到内容中的对象,因为使用
单击()
只会将事件绑定到现有的
提交位置

例如:

$('body').on('click', '#submitPosition', function(e) {
   alert('test');
});
此外,在具有相同id的页面上使用多个元素不是一个好的做法


如果要将内容动态加载到容器中,则应使用jQuery
on()
将事件绑定到内容中的对象,因为使用
单击()
只会将事件绑定到现有的
提交位置

例如:

$('body').on('click', '#submitPosition', function(e) {
   alert('test');
});
此外,在具有相同id的页面上使用多个元素不是一个好的做法

试试这个:

$(document).ready(function(){    
    $("#submitPosition").live('click',function(e) {
            alert('test');
    });
});
这会有帮助的。 Bcoz当此代码初始化时间时,html中不存在#submitPosition。 但live将解决此问题。

尝试以下方法:

$(document).ready(function(){    
    $("#submitPosition").live('click',function(e) {
            alert('test');
    });
});
这会有帮助的。 Bcoz当此代码初始化时间时,html中不存在#submitPosition。 但live将解决此问题。

我看到两个选项:

1) 在userStat div中,更改为:

$("#submitPosition").click(function(e) {
    alert('test');
}).click();
它实际上会调用回调函数

2) 使用shadowbox的onOpen事件:

$('#statsButton').click(function() {
    thisContent = $('#userStats').html();
    Shadowbox.open({
        content: thisContent,
        player: "html",
        onOpen: function(){ alert('test'); } 
    });
});
我看到两种选择:

1) 在userStat div中,更改为:

$("#submitPosition").click(function(e) {
    alert('test');
}).click();
它实际上会调用回调函数

2) 使用shadowbox的onOpen事件:

$('#statsButton').click(function() {
    thisContent = $('#userStats').html();
    Shadowbox.open({
        content: thisContent,
        player: "html",
        onOpen: function(){ alert('test'); } 
    });
});

最初不存在具有相同id的多个元素,但一旦来自#userStats div的内容加载到Shadowbox中,就会有两个#submitPosition实例(在#userStats和Shadowbox中)。只是有点心事!我把这个改成正确答案有两个原因:1。live已弃用,on是使用2的正确jquery。海报中提到id是重复的,这是非常正确的(事实上,当我试图通过ajax响应修改它时,它失败了。shadowbox中的任何内容都应该始终是一个类),最初没有多个元素具有相同的id,但一旦来自#userStats div的内容加载到shadowbox中,将有两个#submitPosition实例(在#userStats和Shadowbox中)。只是有点心事!我把这个改成正确答案有两个原因:1。live已弃用,on是使用2的正确jquery。海报提到id是重复的,这是非常真实的(事实上,这是如此真实,以至于当我试图通过ajax响应修改它时,它失败了。shadowbox中的任何内容都应该是类)