2015-05-18 44 views
1

PHP jQuery的触发按钮我有这样的场景: 我有只有很少的HTML elemnts一个简单的PHP文件:一个div叫开关,另一个叫和几个按钮。 这两个按钮标记为关闭。 灯div空了。 切换div也是空的,但是使用jQuery和Ajax更新txt文件的内容,该文件只包含一个单词:它可以是On或Off。 我想要实现的是这样的:每当文件更新为单词On或Off时,我想要相应地触发On或Off按钮,并通过灯div更改背景颜色。可能吗? UPDATE:DOM的变化

实施例:

(function($){ 
    $(document).ready(function() { 
    $.ajax({ 
    url : "testfile.txt", 
    dataType: "text", 
    success : function (data) { 
     $("#switch").html(data); 

     // this doesn't seems to work... 
     var word = data.toLowerCase(); 
     $('#' + word).trigger('click'); 

     // this works 
     $(document).ajaxStop(function(e){ 
      var response = $("#switch").html(); 
      $("#" + response.toLowerCase()).trigger("click"); 
     }); 

     var $container = $("#switch"); 
     var refreshId = setInterval(function() 
     { 
      $container.load('testfile.txt').html(); 
     }, 2000); 
     } 
    }); 
}); 
})(jQuery); 

<div id="switch"></div> 
<div id="on" class="button">On</div> 
<div id="off" class="button">Off</div> 

<div id="lamp"></div> 
+0

当你说触发器时,你的意思是点击,还是某个代码集被触发? – AmmarCSE

回答

0

如果你只有一个Ajax请求,你可以这样做:

$(document).ajaxStop(function(e){ 
    var response = $("#switch").text(); 
    // do what you want with variable response here 
    $("#" + response.toLowerCase()).trigger("click"); 
}); 
+0

我不是一个jQuery大师,但这个工作! – uomopalese

1

因为响应是唯一的一个字。为什么不试试

var word = data.toLowerCase(); 
$('#' + word).trigger('click'); 

在成功回调。

+0

谢谢,这只适用于如果我刷新页面(改变文件内容后),它不会更新dinomically – uomopalese

+0

@uomopalese,你把这个代码在Ajax成功回调?你什么意思是动态的?首次加载页面时? – AmmarCSE

+0

@AmmaCSE我更新了代码,以显示你是我把它。我不知道为什么一个人工作,其他人不工作。 – uomopalese

0

也许这可以帮助你需要的东西:

(function($){ 
    $(document).ready(function() { 
     var $container = $("#switch"); 
     $container.load("testfile.txt", function() { 
      setInterval(function() { 
       $container.load("testfile.txt"); 
      }, 2000); 
     }); 
    }); 
})(jQuery); 

使用clearInterval()需要时停止计时。

+0

我必须把'clearIntervall()'放在哪里?浏览器正在向服务器发送cuntinuous请求。谢谢 – uomopalese

+0

您的setInterval每2秒发出一个请求,并在页面加载时更新容器。这是如何检测文件中的更改。您可以在某些用户操作或满足特定条件时使用clearInterval。 – adriann