我在JQuery中有两个函数
jQuery.fn.funct1= function(a,b,c){
//code ...load() by scrolling from results.php
// in ul#total_results (sql="SELECT ABC") 100 RESULTS
//$("#total_results").append(data);
}
jQuery.fn.funct2= function(m,n,p){
//code ...load() by scrolling from results.php
// in ul#total_results (sql="SELECT MNP") 30 RESULTS
//$("#total_results").append(data); }
我触发第一个功能默认显示在页面
中 $(document).ready(function() {
$("#total_results").funct1(a,b,c);
});
但是一旦我点击第二个锚点来运行第二个功能,滚动页面时会在第一个函数中显示加载的结果。我希望第一个功能被禁用,而另一个功能正在工作,反之亦然。
<a onclick="$('#total_results').funct1(a,b,c);">Show results funct 1</a>
<a onclick="$('#total_results').funct2(m,n,p);">Show results funct 2</a>
<ul id=total_results></ul>
我想点击第一个锚点以显示funct1
的结果,然后点击第二个锚点以显示funct2
的结果。
我尝试了一个布尔值,创建了noShowFunct1=true & noShowFunct1=false ;
但没有任何内容,以及jQuery.fn.funct1=null
,但没有。尝试window.onload= funct1
,然后window.onload=null
点击funct2
后的锚点,它也无法正常工作。这是结构https://jsfiddle.net/2mkc4w3e/3/
答案 0 :(得分:0)
此语法不正确:
<a onclick="$("#total_results").funct1(a,b,c);">Show results funct 1</a>
<a onclick="$("#total_results").funct2(m,n,p);">Show results funct 2</a>
您必须转义双引号,否则请使用单引号:
<a onclick="$('#total_results').funct1(a,b,c);">Show results funct 1</a>
<a onclick="$('#total_results').funct2(m,n,p);">Show results funct 2</a>
但如果你将处理程序代码与HTML分开会更好:
<a href="#" id="a1">Show results funct 1</a>
<a href="#" id="a2">Show results funct 2</a>
<script>
$('#a1').click(function () {
$('#total_results').funct1(a,b,c);
});
$('#a2').click(function () {
$('#total_results').funct2(m,n,p);
});
</script>
$.fn.funct1 = function(a,b,c) {
$(this).text('a='+a+'\nb='+b+'\nc=' +c);
}
$.fn.funct2 = function(m,n,p) {
$(this).text('m='+m+'\nn='+n+'\np=' +p);
}
var a=1,b=1,c=1,m=2,n=2,p=2;
$('#a1').click(function () {
$('#total_results').funct1(a,b,c);
});
$('#a2').click(function () {
$('#total_results').funct2(m,n,p);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="a1">Show results funct 1</a>
<a href="#" id="a2">Show results funct 2</a>
<div id="total_results"></div>
&#13;
你提供了这个代码(有一些错误),我在其中添加了一个变量currentFunc
,以确保只有两个函数中的一个可以写入total_results
元素。
var curr_func = null;
$.fn.funct1= function(total_groups){
loading=false;
total_groups=0;
curr_func = 1; // remember that this function is activated
$("#total_results").load("results.php",function(){
if (curr_func !== 1) return; // other function is active!
total_groups++
})
If(/* scrolling page criteria or so*/ ) {
loading = true;
$.post("results.php", function() {
if (curr_func !== 1) return; // other function is active!
$("#total_results").append(data);
}
}
}
你会在另一个函数中做同样的事情,但是然后设置并测试值2。
在您可能从任一函数触发的每个异步代码中添加if (curr_func ...)
测试(即在回调函数中)。