PHP jQuery 触发按钮 dom 变化

PHP jQuery trigger button on dom change

我有这样的场景: 我有一个简单的 php 文件,只有几个 html 元素:一个 div 叫做 switch,另一个叫做 lamp 和几个按钮。 这两个按钮标记为 OnOff。 lamp div 为空。 开关 div 也是空的,但是使用 jQuery 和 Ajax 更新了一个 txt 文件的内容,它只包含一个词:它可以是 On 或 Off。 我想要实现的是:每当文件更新为 On 或 Off 时,我希望相应地触发 On 或 Off 按钮,并使用 lamp div 更改背景颜色.可能吗? 更新:

示例:

(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>

因为回复只有一个字。为什么不试试

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

在成功回调中。

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

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

也许这对您的需要有所帮助:

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

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