Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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赢得';如果外部加载元件,则无法工作_Javascript_Php_Jquery_Object_Embed - Fatal编程技术网

Javascript jQuery赢得';如果外部加载元件,则无法工作

Javascript jQuery赢得';如果外部加载元件,则无法工作,javascript,php,jquery,object,embed,Javascript,Php,Jquery,Object,Embed,我正在将一个外部php文件导入另一个php文件 外部文件: function featured($featured) { echo '<button id="switch">CLICK ME!</button>'; echo '<object type="application/x-shockwave-flash" height="427" width="700" id="live_embed_player_flash" data="http://www.twitc

我正在将一个外部php文件导入另一个php文件

外部文件:

function featured($featured) {
echo '<button id="switch">CLICK ME!</button>';
echo '<object type="application/x-shockwave-flash" height="427" width="700" id="live_embed_player_flash" data="http://www.twitch.tv/widgets/live_embed_player.swf?channel=blahblah" bgcolor="#000000"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="allowNetworking" value="all" /><param name="movie" value="http://www.twitch.tv/widgets/live_embed_player.swf" /><param name="flashvars" value="hostname=www.twitch.tv&channel=blahblah&auto_play=true&start_volume=25" /></object>';
}
功能特色($featured){
回声“点击我!”;
回声';
}
主文件:

<div id="div">
</div>

<script>
    var xmlhttp;

    function loadXMLDoc(url, varString, cfunc){
        if (window.XMLHttpRequest)
            xmlhttp=new XMLHttpRequest();
        else
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        xmlhttp.onreadystatechange=cfunc;
        xmlhttp.open("POST", url, false);
        xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
                    var channel = window.location.search;
                    if(channel.length>0)
                            varString = channel.substring(1);
        xmlhttp.send(varString);
    }   
    loadXMLDoc("external.php", "channel=", function(){ 
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
            document.getElementById("div").innerHTML=xmlhttp.responseText;
    });
</script>

var-xmlhttp;
函数loadXMLDoc(url、varString、cfunc){
if(window.XMLHttpRequest)
xmlhttp=新的XMLHttpRequest();
其他的
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
onreadystatechange=cfunc;
open(“POST”,url,false);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
var通道=window.location.search;
如果(通道长度>0)
varString=channel.substring(1);
send(varString);
}   
loadXMLDoc(“external.php”,“channel=”,function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200)
document.getElementById(“div”).innerHTML=xmlhttp.responseText;
});
loadXMLDoc函数工作得非常好,我可以看到元素并与按钮交互,并在对象标记中播放视频。但是,当我将以下代码应用于外部文件或主文件时,我没有得到任何交互

<script>
$(document).ready(function(){
$( "#switch" ).click(function() {
  $( "object" ).attr("data", myNewURL);
});
});
</script>

$(文档).ready(函数(){
$(“#开关”)。单击(函数(){
$(“对象”).attr(“数据”,myNewURL);
});
});
尝试使用

$(document).ready(function(){
    $('body').on('click', "#switch", function() {
        $( "object" ).attr("data", myNewURL);
    });
});
您的
#switch
元素是在
.click()
方法之后添加的,因此它没有附加事件。在这种情况下,将帮助您将单击事件附加到新添加的
#switch
元素

使用

on()将一个或多个事件的事件处理程序函数附加到所选元素

<script>
$(document).ready(function(){
 $('body').on('click', "#switch", function() {
        $( "object" ).attr("data", myNewURL);
    });
});
</script>

$(文档).ready(函数(){
$('body')。在('click',“#switch”,function()上{
$(“对象”).attr(“数据”,myNewURL);
});
});
您应该使用

它帮助您为外部加载的元素附加处理程序

可能重复的
$(document).on("click","#switch",function(){
   //some operation
});