单击时不调用jQuery事件,而是双击调用

时间:2011-09-11 18:13:41

标签: jquery

我使用jQuery在母版页内调用页面getUserAdDetails.aspx?PID=。  我必须动态生成按钮的ID ...下面的代码工作正常,但它不能单击而不是我必须双击按钮加载外部页面..我是新的jQuery所以我觉得很难找到解决方案。请检查我的代码,如果有人可以解决它,我们将不胜感激。

如果我也尝试在链接而不是按钮上发射相同的内容,那么它不起作用.. 请参阅下面的代码,这将为您提供一个想法

<script type="text/javascript">
    function passPID(pid, psno) {
        $(document).ready(function () {
            $('#' + psno).html('<img src="images/ajax-loader-small.gif"/> Loading...');
            $('#' + pid).click(function () {
                    $('#' + psno).load("getUserAdDetails.aspx?PID=" + pid);
            });
        });
    }
</script>

<input id='<%# Eval("ProductIDGUID")%>'  type="button" value="View Details" onclick="passPID('<%# Eval("ProductIDGUID")%>', '<%# Eval("psno")%>' )" class="btncss" />

1 个答案:

答案 0 :(得分:2)

将脚本更改为:

function passPID(pid, psno) {
    $('#' + psno)
        .html('<img src="images/ajax-loader-small.gif"/> Loading...')
        .load("getUserAdDetails.aspx?PID=" + pid);
}

它正在双击,因为当您第一次单击时,在您的函数内部,您将click事件侦听器附加到该元素。然后,当您第二次单击时,此处理程序正在执行。


以下是包含$.slideUp$.slideDown动画的解决方案:

function passPID(pid, psno) {
    var $psno = $('#' + psno);
    $psno.html('<img src="images/ajax-loader-small.gif"/> Loading...');
    $.get('getUserAdDetails.aspx?PID=' + pid, {} , function(html){
        $psno.slideUp(100, function(){
            $psno
                .html(html)
                .slideDown();
        })
    }, 'html');
}