Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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 txt文件内容显示/隐藏_Jquery_Text Files_Show Hide - Fatal编程技术网

jQuery txt文件内容显示/隐藏

jQuery txt文件内容显示/隐藏,jquery,text-files,show-hide,Jquery,Text Files,Show Hide,我有一个脚本,可以从文本文件加载信息,并每隔x秒重新加载该文件,因此每次更新该文本文件时,该脚本都是可见的 但是,是否有可能显示div x秒,然后将其隐藏。当文本文件更改内容时,它会再次弹出几秒钟,然后再次隐藏,依此类推 我现在拥有的: function readTxtfile() { jQuery.ajax({ url: "textfile.txt", dataType: "text", success: function(dat

我有一个脚本,可以从文本文件加载信息,并每隔x秒重新加载该文件,因此每次更新该文本文件时,该脚本都是可见的

但是,是否有可能显示div x秒,然后将其隐藏。当文本文件更改内容时,它会再次弹出几秒钟,然后再次隐藏,依此类推

我现在拥有的

function readTxtfile() {
        jQuery.ajax({
        url: "textfile.txt",
        dataType: "text",
        success: function(data) {
        var lines = data.split(','),
            htmlLines = '<p>' + lines.join('</p><p>') + '</p>';

        jQuery("#info_container .txt").html(htmlLines);
        setTimeout(readTxtfile, 5000);
        }
    });
}

jQuery(document).ready(function() {
    readTxtfile();
});
函数readTxtfile(){ jQuery.ajax({ url:“textfile.txt”, 数据类型:“文本”, 成功:功能(数据){ 变量行=数据。拆分(','), HTMLINES=''+行。连接('

')+'

'; jQuery(“#info_container.txt”).html(html行); setTimeout(readTxtfile,5000); } }); } jQuery(文档).ready(函数(){ readTxtfile(); });
使用
.show()
.hide()

函数readTxtfile(){ jQuery.ajax({ url:“textfile.txt”, 数据类型:“文本”, 成功:功能(数据){ 变量行=数据。拆分(','), HTMLINES=''+行。连接('

')+'

'; var元素=jQuery(“#info_container.txt”) if(htmlLines==element.html()){ 元素。隐藏(); }否则{ html(htmlLines.show(); } setTimeout(readTxtfile,5000); }); }
我建议您使用setInterval而不是setTimeout,因为您每X毫秒运行一次请求。您可以这样做:

var-TIME-TO-SHOW=2000;
请求的var时间=1000;
var currentContent=null;
var hideTimeout=null;
函数readTxtfile(){
var数据=$(“#inputxt”).val();
如果(currentContent==数据){
//如果读取的内容与实际内容相同,则不执行任何操作
返回;
}
currentContent=数据;
变量行=data.split(',');
HTMLINES=''+行。连接('

')+'

'; $(“#info_container.txt”).html(html); $(“#info_container.txt”).show();//在编辑的文本上显示div 如果(隐藏超时){ //这将防止div被超时隐藏,超时 //已经开始了 clearTimeout(隐藏超时); } hideTimeout=setTimeout(函数(){ $(“#info_container.txt”).hide(); hideTimeout=null; },TIME_TO_SHOW);//在2秒后隐藏div } $(文档).ready(函数(){ //每秒钟检查一次修改 var interval=setInterval(readTxtfile,请求的时间); });

试验

Hi Joe,这不起作用?当我更改txt文件时,内容不会在x秒后弹出并再次隐藏?嗨,当你加载页面时,txt内容将隐藏,这很好。但当我更改txt文件的内容时,它不会再次弹出?(仅在重新加载页面时)这很好用,thnx!也许这个小功能可能吗?当你保存文本文件时,你几乎在同一时间保存了3次,请求的时间是7秒,显示的时间是6秒,那么他只显示文本文件的第三次保存,而不是第一次和第二次保存。有可能是jQuery保存了它还是什么?并首先显示第一次保存,然后显示第二次保存,然后显示第三次保存?请求之间的延迟为7秒,这是不可能的,因为jquery仅在7秒后读取文件,如果文件在此期间发生更改,则无法显示在这几秒内所做的更改。最简单的方法是为requ设置较低的延迟est例如:1秒。但当我将其设置为1秒时,它们之间没有pauze。这一定像警报。例如:文本文件更改-文本显示5秒并隐藏。然后第二个将弹出,依此类推。(因此,一个更改不会干扰另一个更改,而是在动画完成后等待。)这可能有点棘手,因为您必须处理一个编辑队列,并在指定的时间内按顺序显示它们。我将尽可能添加一个使用此功能剪切的新代码,同时您应该为请求设置较低的延迟,然后考虑一种处理此功能的方法:我将创建一个数组,其中我将dd从请求中获得的所有编辑,然后我将使用另一个
setInterval
,这样您就可以在5秒钟内显示内容的第一个版本,之后将显示第二个版本,然后在5秒钟后显示第三个版本,依此类推。。。
function readTxtfile() {
        jQuery.ajax({
        url: "textfile.txt",
        dataType: "text",
        success: function(data) {
        var lines = data.split(','),
            htmlLines = '<p>' + lines.join('</p><p>') + '</p>';

        var element = jQuery("#info_container .txt")
        if ( htmlLines == element.html()) {
            element.hide();
        } else {
            element.html(htmlLines).show();
        }
        setTimeout(readTxtfile, 5000);
    });
}