我有任何页面,并包含jquery库和css(this)。
现在我有twitter代码加载更多。这工作但但是当我需要使用jQuery删除它时它不起作用(我的索引中有另一个代码)。问题这个:jquery库没有附加到外部php文件。
我在colorbox中遇到同样的问题。当我在colorbox中加载iframe时,我的索引jQuery没有附加到外部文件,所以我将手动jquery放到外部文件中!
没有办法只使用jquery原始文件(我的索引)?
E.X js加载更多:
<script type="text/javascript">
$(function() {
//More Button
$('.more').live("click",function()
{
var ID = $(this).attr("id");
if(ID)
{
$("#more"+ID).html('<img src="moreajax.gif" />');
$.ajax({
type: "POST",
url: "ajax_more.php",
data: "lastmsg="+ ID,
cache: false,
success: function(html){
$("ol#updates").append(html);
$("#more"+ID).remove();
}
});
}
else
{
$(".morebox").html('The End');
}
return false;
});
});
</script>
PHP:
<?php
include("config.php");
if(isSet($_POST['lastmsg']))
{
$lastmsg=$_POST['lastmsg'];
$result=mysql_query("select * from messages where msg_id<'$lastmsg' order by msg_id desc limit 9");
$count=mysql_num_rows($result);
while($row=mysql_fetch_array($result))
{
$msg_id=$row['ms_gid'];
$message=$row['message'];
?>
<li>
<?php echo $message; ?>
</li>
<?php
}
?>
<div id="more<?php echo $msg_id; ?>" class="morebox">
<a href="#" id="<?php echo $msg_id; ?>" class="more">more</a>
</div>
<?php
}
?>
HTML:
<head><script type="text/javascript" src="./jquery.min.js"></script></head>
<div id='container'>
<ol class="timeline" id="updates">
<?php
$sql=mysql_query("select * from messages ORDER BY msg_id DESC LIMIT 9");
while($row=mysql_fetch_array($sql))
{
$msg_id=$row['msg_id'];
$message=$row['message'];
?>
<li>
<?php echo $message; ?>
</li>
<?php } ?>
</ol>
<div id="more<?php echo $msg_id; ?>" class="morebox">
<a href="#" class="more" id="<?php echo $msg_id; ?>">more</a>
</div>
</div>
答案 0 :(得分:0)
是因为你的jquery在文件准备好之后被加载然后你调用另一个php文件。你应该使用没有$(document).ready()的jquery函数;所以你可以在任何地方使用jquery函数。另一个重要的是,而不是使用
$(function(){
$('#selector').click(function(){
'your other code'
});
});
像这样使用
function my_function(){
your code
}
和html
<input type = "text" onclick = 'my_function();'>
希望这会有所帮助。这样您就可以在任何地方调用这些功能。如果你在第一个php中调用或加载其他php文件,那么确保它被加载到位于第一个php文件中的div中。