2

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

我做错了吗?

我该怎么做

提前致谢

4

5 回答 5

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();
        }
});
于 2013-06-27T12:20:50.097 回答
0

为什么不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>
于 2013-06-27T12:21:07.003 回答
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();
        }
    });
});
于 2013-06-27T12:22:14.513 回答
0

那么你不需要放入onclick="return $('#a').click() ? addInput(): true"锚标签。因为如果您$('a').click(function(){}在 jQuery 中提及,则意味着每当您单击链接时,都会调用此函数。因此,true/false您可以直接从 jQuery 调用,而不是从 jQuery 函数返回addInput()

于 2013-06-27T12:24:24.203 回答
0

你错过了一个;后clickCount = 0

于 2013-06-27T12:29:30.447 回答