如果我的标签内容到处都是相同的,为什么我的JQuery脚本似乎只在开始浏览标签之前才起作用? - php

如果在我的所有页面中使用的JQuery脚本似乎到处都是相同的,为什么似乎只能在开始浏览选项卡之前起作用?

我有一个使用JQuery和AJAX构建的标签视图网页。

这是我的JQuery函数:

$(document).ready(function(){
    $(".box .more").click(function(event){
        alert('test'); 
    });

    $("a.linkTab").click(function(event){
        var tabID = $('.linkTab')[0].toString().split('#')[1];
        $.ajax({
            url : "loadPage.php?tabID=" + tabID,
            success : function (data) {
                $('#body').html(data);
            }
        });
    });
});

这是我的身体网页:

<div id="header">...</div>
<div id="body">
    <div class="box">
        <p class="more">LinkLike</p>
    </div>
</div>
<div id="footer"><a href="#9">9</a></div>

loadPage.php仅包含Ajax脚本发送的所需页面。

我的标签系统运行良好,可以在所需的页面中浏览。导航之前,当我单击LinkLike时,将显示警报。但是,当我浏览选项卡时,当我单击时,什么也没有。

为什么JQuery脚本似乎只能在开始浏览之前起作用。

重要的是,我从php导入的文件包含与第一个完全相同的主体。该文件包含:

<div class="box">
    <p class="more">LinkLike</p>
</div>

参考方案

尝试

$(document).delegate(".box .more","click",function(event){
        alert('test'); 
    });

原因可能是您可以动态生成链接,并且事件处理程序不会将自身附加到动态插入到DOM的元素上。以前使用的是.live,但现在已弃用,如果使用的是jQuery 1.7+及更高版本,则可以使用.on方法,否则可以使用delegate方法将事件处理程序附加到动态内容。但是,您也可以将事件重新绑定到ajax请求的成功回调中

$.ajax({
            url : "loadPage.php?tabID=" + tabID,
            success : function (data) {
                $('#body').html(data);
                $(".box").bind("click");
            }
        });

jQuery.on版本1.7+

jQuery.delegate

PHP-复选框组 - php

我有一个需要发布的表单复选框组。<input type="checkbox" value="true" checked name="chk0[]"> <input type="checkbox" value="false" name=…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

PHP:为什么将日期设置为数组? - php

为什么将此字符串组成一个数组,如何停止它?摘要:(获取日期)public function setDate(){ $this->date = date("Y-m-d"); return $date; } public function getDate(){ return $this->date; } $date = getDa…

当使用jquery的id做某事时,id可以来自任何一种标记吗? - php

我是JQuery的新手,我正尝试使用PHP,HTML和JQuery编写代码。我想用具有ID的标签替换HTML中的所有<?php echo $var; ?>。例如,我想使用<div id="name"></div>之类的东西,然后使用$("#name")将其显示在该div字段中。我的问…

PHP中奇怪的sprintf行为 - php

我试图做sprintf("<%s>", "Sat");,但是什么也没出现。当您删除小于符号时,它将再次开始工作。任何人都经历过这种行为以及是否会发生这种情况?因为我认为这是一个错误。您甚至可以在这里使用printf .....获得相同的结果。http://writecodeonline.com/php/ 参…