Ban*_*ore 10 javascript css jquery padding hide
我有一个jquery方法,我使用单击按钮调用该方法.所以在那个代码中我有一行" $("#loadingMessage").css('padding-top','6%');"我需要这行只在我们第一次调用该方法时执行一次,之后我就离开了这一行.
所以请帮助我找到一种方法
整个方法脚本如下
$('#SearchButton').click(function() {
$(".spinner").css('visibility','hidden');
$("#loadingMessage").css('padding-top','6%'); //I want this line execute only once, i mean first time
loaderStart();
document.getElementById('loadinggif3').style.display = "block";
$("#loadinggif3").show();
$(".col-sm-9").css('visibility','hidden');
var str = $('#SearchText').val();
str = str.trim();
if(str=="") return false;
)};
Run Code Online (Sandbox Code Playgroud)
fro*_*dqy 20
使用jQuery .one().使用.one()方法时,事件处理函数仅对每个元素运行一次.
$('#SearchButton').one("click", function () {
$("#loadingMessage").css('padding-top', '6%');
});
$('#SearchButton').click(function () {
$(".spinner").css('visibility', 'hidden');
loaderStart();
document.getElementById('loadinggif3').style.display = "block";
$("#loadinggif3").show();
$(".col-sm-9").css('visibility', 'hidden');
var str = $('#SearchText').val();
str = str.trim();
if (str == "") return false;
});
Run Code Online (Sandbox Code Playgroud)
Sud*_*Pal 14
使用布尔值作为全局变量,如
var flag = true;
Run Code Online (Sandbox Code Playgroud)
现在,在执行之前设置条件,Like
if(flag){
$("#loadingMessage").css('padding-top','6%');
flag=false;
}
Run Code Online (Sandbox Code Playgroud)
如果要限制#SearchButton click事件仅触发一次,请使用.one方法
$('#SearchButton').one('click', function() {
...
});
Run Code Online (Sandbox Code Playgroud)
快速而“肮脏”的解决方案:
$.first_time = true;
$('#SearchButton').click(function() {
if($.first_time == true) $("#loadingMessage").css('padding-top','6%');
$.first_time = false;
});
Run Code Online (Sandbox Code Playgroud)
一些解释:这里需要一个全局jQuery变量($.first_time在本例中),以便在单击事件的匿名函数中仍然知道它。
小智 5
如果您只需要在没有特定事件绑定的情况下仅运行一次泛型函数,请使用此函数。
$(document).one('ready', function(){
// your code
$("#id").on("click", function() {
// other code
});
});
Run Code Online (Sandbox Code Playgroud)
如果在一个函数内被多次调用很有用(防止beein多次触发onclick事件)