我有一个像这样的 setInterval 函数。仅在第一个窗口上显示结果。如何在 setIntervel 中包含“this”函数。帮助我解决我的问题。
$(document).ready(function(){
$("a").click(function(){
var user ='<div><b id="mainbox" name="mainbox"><form id="fm"><p id="chat-msgs"></p><input type="text" id="text" placeholder="Type msghere..."></form></b></div>'
$("#demo1").append(user);
});
});
$(document).on('click', '#mainbox', function(){
$.ajaxSetup({cache:false});
setInterval(function(){
$('#chat-msgs').load('real-auto.php');//its appear only on first window .
}, 900);
});
<a>ram</a>
<a>ravi</a>
<a>ragul</a>
<p id='demo1'></p>
最佳答案
你可以这样写
$(document).on('click', '#mainbox', function(){
var that = this; // store the current #mainbox
$.ajaxSetup({cache:false});
setInterval(function(){
$(that).find('#chat-msgs').load('real-auto.php');//its appear only on first window .
}, 900);
});
但是,这里您要重复添加一些带有 id
的元素,并且一个网页中不能有多个具有相同 id 的元素。
因此,将所有 id
替换为 class
。
html
<a href="#">ram</a>
<a href="#">ravi</a>
<a href="#">ragul</a>
<p id='demo1'></p>
js
$(document).ready(function(){
$("a").click(function(){
var user ='<div><b class="mainbox" name="mainbox"><form class="fm"><p class="chat-msgs"></p><input type="text" class="text" placeholder="Type msghere..."></form></b></div>';
$("#demo1").append(user);
});
});
$(document).on('click', '.mainbox', function(){
var that = this; // store current .mainbox
$.ajaxSetup({cache:false});
setInterval(function(){
$(that).find('.chat-msgs').load('real-auto.php');//its appear only on first window .
}, 900);
});
关于javascript - 如何在jquery上的set Interval函数中添加 '' this'',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36791805/