如果条件不在jquery中工作

时间:2013-06-27 12:17:22

标签: javascript jquery html

我有一个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函数运行正常。

我做错了吗?

我该怎么做

提前致谢

5 个答案:

答案 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,而不是从jQ​​uery函数返回addInput()

答案 4 :(得分:0)

你错过了一个;在clickCount = 0之后