Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery在注册单击时启动函数_Jquery - Fatal编程技术网

jQuery在注册单击时启动函数

jQuery在注册单击时启动函数,jquery,Jquery,我有一个非常简单的代码,绑定一个点击按钮。 但是,当click函数被绑定时,会调用它内部的回调函数 var showBtn = function (step) { switch (step) { case '#step-one': $('#btnPatientAnonyme').show(); $(".btnPopUp > input[data-type='prev']").hide(); $(".btnPopUp > inpu

我有一个非常简单的代码,绑定一个点击按钮。 但是,当click函数被绑定时,会调用它内部的回调函数

var showBtn = function (step) {
switch (step) {
    case '#step-one':
        $('#btnPatientAnonyme').show();
        $(".btnPopUp > input[data-type='prev']").hide();
        $(".btnPopUp > input[data-type='next']").click(showStep('#step-two'));
    break;
}
};
我经常使用jQuery,在注册步骤中不启动另一个绑定单击。在本例中,当我要求执行第一步时,会显示第二步,我的需要是仅当用户单击按钮时才显示它

那么为什么会有这种奇怪的行为呢


感谢您的帮助。

您在执行绑定时正在调用函数:
showStep(“#步骤二”)

如果要向方法传递附加信息,则需要使用
$.trigger
。这将允许您调用click事件并传入额外的选择器:

$(".btnPopUp > input[data-type='next']").trigger("click", "#step-two");
您需要已经将单击事件绑定到弹出窗口

因此,完整代码如下所示:

$(".btnPopUp > input[data-type='next']").click(showStep);

var showBtn = function (step) {
    switch (step) {
        case '#step-one':
            $('#btnPatientAnonyme').show();
            $(".btnPopUp > input[data-type='prev']").hide();
            $(".btnPopUp > input[data-type='next']").trigger("click", "#step-two");
            break;
    }
};

function showStep(event, selector) { ... }


看起来您可能希望有条件地附加带有参数的事件,而不是触发它。我看错了操作。您可以使用
$附加其他信息“进入”。在
上:

$(".btnPopUp > input[data-type='next']").on("click", null, "#step-two", showStep);

function showStep(event) { ... }; // selector would be in event.data

下面是一个使用
$的示例。在

上,是的,但如果在开关情况下触发该函数,则会出现相同的行为。那么,如何在不触发函数的情况下注册额外的参数呢?我不知道我是否理解你的意思。我更新了我的答案,更好地解释了代码的结构。需要绑定click事件才能触发它。绑定后,可以使用
$.trigger
强制触发事件,并发送额外信息。更新还包括一个提琴示例。您的示例很好,但我需要在切换情况下“注册”一个“下一步按钮”(当我点击第一步时,下一步按钮将是第二步,…),并且在用户单击按钮“下一步”之前不触发按钮。所以如果我用这个方法,当我问第一步的时候,第二步会显示出来。我想我理解你现在的要求。我在
上使用
$添加了一个备选答案。