在jquery中再次单击调用Click函数?可能吗

时间:2013-11-11 06:28:15

标签: jquery

JS:

$('#button6').click(function () {

    $('#que1').hide();
    $('#que2').hide();
    $('#que3').hide();
    $('#que4').show();
    $('#que5').hide();
    $('#que6').hide();
    $('#que7').hide();
    $('#que8').hide();

    var line1 = $('.question3:checked').val();
    if (typeof line1 === "undefined") {
        var msg = new Windows.UI.Popups.MessageDialog("You Choosed", "nothing");
        msg.showAsync();
        $('#button6').click();
    }

});

有可能吗?如果不检查任何单选按钮,我想返回相同的功能。

但这不起作用。

3 个答案:

答案 0 :(得分:1)

危险 - 如果条件永远不会满足,那么您将陷入无限点击循环。

否则,请使用:$(selector).trigger("click")


此外,这一行:

var line1 = $('.question3:checked').val();
if (typeof line1 === "undefined") { ... }

...可以简化为:

if($('.question3').is('checked')) { .... }

答案 1 :(得分:0)

如果您的条件if (typeof line1 === "undefined")评估为true,那么您处于无限循环状态。因为您再次单击相同的按钮。

$('#button6').click(function () {
some condition{
    $( "#button6" ).trigger( "click" ); // Again triggering the same button click
  }
}

如果未选中该复选框,则可以显示警报,但不要再次调用相同的按钮。您可以做的是提示用户再次检查。

答案 2 :(得分:0)

你的方法是试图递归......这是一个糟糕的主意。 在您确认已经回答之前不要隐藏que3。然后显示que4。 考虑一下这些评论;这就是你如何装饰问题(例如添加一个红色边框)。

var line1 = $('.question3:checked').val();
if (typeof line1 === "undefined") {
  // $("que3").addClass('error');
  return;
} else {
  // $("que3").removeClass('error');
  $('#que3').hide();
  $('#que4').show();
}