Javascript jQuery赢得';如果外部加载元件,则无法工作
我正在将一个外部php文件导入另一个php文件 外部文件: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
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
});