我有一个jquery函数和一个javascript函数。单击链接时我想先运行jquery函数,如果返回true则应该调用javascript函数。
html文件
<a href="javascript:void()" onclick="return $('#a').click() ? addInput(): true" >
Jquery函数
$(function () {
$('a').click(function () {
var clickCount = jQuery.data(this, 'clickCount');
if (!clickCount) {
clickCount = 0
}
clickCount++;
jQuery.data(this, 'clickCount', clickCount);
alert(clickCount);
if (clickCount < 4) {
return true;
} else {
return false;
}
});
});
Javascript功能
<script>
#.. do something
</script>
我的问题是jquery中的 if 条件无效。但调用了javascript函数,javascript函数运行正常。
我做错了吗?
我该怎么做
提前致谢
答案 0 :(得分:1)
html文件
<a href="javascript:void()" >
Jquery函数
<script type="text/javascript">
$(document).ready(function(){
$('a').click(function(event)
{
var clickCount = jQuery.data( this, 'clickCount');
if (!clickCount)
{
clickCount = 0
}
clickCount++;
jQuery.data( this, 'clickCount',clickCount);
if(clickCount<4)
{
//Do something
}
else
{
event.preventDefault();
}
});
答案 1 :(得分:0)
为什么不从click事件处理程序中调用addInput()
。像这样:
<a href="javascript:void()">
<script type="text/javascript">
$(function(){
$('a').click(function()
{
var clickCount = jQuery.data( this, 'clickCount');
if (!clickCount)
{
clickCount = 0
}
clickCount++;
jQuery.data( this, 'clickCount',clickCount);
alert(clickCount);
if(clickCount<4)
{
return addInput();
}
else
{
return false;
}
});
});
</script>
答案 2 :(得分:0)
为什么不这样?
HTML:
<a>
jQuery的:
$(function() {
$('a').click(function(e) {
e.preventDefault();
var clickCount = jQuery.data( this, 'clickCount');
if (!clickCount) {
clickCount = 0
}
clickCount++;
jQuery.data( this, 'clickCount',clickCount);
alert(clickCount);
if(clickCount<4) {
addInput();
}
});
});
答案 3 :(得分:0)
你不需要将onclick="return $('#a').click() ? addInput(): true"
放在锚标签中。因为如果你在jQuery中提到$('a').click(function(){}
,那么这意味着无论何时点击链接,都会调用此函数。因此,您可以直接从jQuery调用true/false
,而不是从jQuery函数返回addInput()
。
答案 4 :(得分:0)
clickCount = 0
之后