Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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_Toggle - Fatal编程技术网

需要绕过jquery切换函数吗

需要绕过jquery切换函数吗,jquery,toggle,Jquery,Toggle,我需要能够绕过切换的第一个功能,我想知道jquery切换是如何工作的 我知道如果我点击某个东西,第一个功能会被执行,然后当我再次点击它时,第二个功能会被执行 我需要做的是绕过第一个函数,直接转到第二个函数 我这样做的原因是按钮的状态已被发生的另一个事件更改。当我现在第一次点击这个按钮时,它假设这是第一次点击它,当我需要它执行第二个功能时,它将执行第一个功能 有办法解决这个问题吗?如果jquerytoggle函数等于true或false,那么我肯定能够检查并调用正确的脚本 非常感谢 我假设另一个事

我需要能够绕过切换的第一个功能,我想知道jquery切换是如何工作的

我知道如果我点击某个东西,第一个功能会被执行,然后当我再次点击它时,第二个功能会被执行

我需要做的是绕过第一个函数,直接转到第二个函数

我这样做的原因是按钮的状态已被发生的另一个事件更改。当我现在第一次点击这个按钮时,它假设这是第一次点击它,当我需要它执行第二个功能时,它将执行第一个功能

有办法解决这个问题吗?如果jquerytoggle函数等于true或false,那么我肯定能够检查并调用正确的脚本


非常感谢

我假设另一个事件并不总是在第一次切换之前触发,否则您可以反转函数

您能否更改其他事件以触发切换?如果另一个事件正在执行相同的任务,那么这就是解决方法

  // From within the other event's handler
$(someselector).click();  // to fire the toggle
否则,您可以使用
.data()
在元素上放置一个标志,以检查
切换()
是否已触发。如果没有,则进行第一次函数测试,以查看元素是否已被其他事件修改

$(someselector).toggle(
    function() {
        var $th = $(this);
        if( !$th.data('toggled') ) {  // Check if toggle has not yet run
            $th.data('toggled', true);    // If not, set flag it to show it has run
            if( some_test_to_see_if_modified_externally ) {
                $th.click() // fire the second toggle
                return;     // return if element has been modified externally
            }
        } 
        // otherwise run the normal code  
    },
    function() {
        // your normal code
    }
);

我假设另一个事件并不总是在第一次切换之前触发,否则您可以反转函数

您能否更改其他事件以触发切换?如果另一个事件正在执行相同的任务,那么这就是解决方法

  // From within the other event's handler
$(someselector).click();  // to fire the toggle
否则,您可以使用
.data()
在元素上放置一个标志,以检查
切换()
是否已触发。如果没有,则进行第一次函数测试,以查看元素是否已被其他事件修改

$(someselector).toggle(
    function() {
        var $th = $(this);
        if( !$th.data('toggled') ) {  // Check if toggle has not yet run
            $th.data('toggled', true);    // If not, set flag it to show it has run
            if( some_test_to_see_if_modified_externally ) {
                $th.click() // fire the second toggle
                return;     // return if element has been modified externally
            }
        } 
        // otherwise run the normal code  
    },
    function() {
        // your normal code
    }
);

您可以在toggle函数之外创建一个变量:
var isFirstToggle=true

然后在切换回调中,如果它等于true,则返回

var isFirstToggle = true;
$("#myId").toggle(function(){
   if (isFirstToggle === true){
      isFirstToggle = false;
      return;
}, function(){
   //do stuff on second toggle.
});

让我知道你的想法,如果这看起来合适的话。可能有更干净的方法来处理它,但这应该很快就可以了。

您可以在toggle函数之外创建一个变量:
var isFirstToggle=true

然后在切换回调中,如果它等于true,则返回

var isFirstToggle = true;
$("#myId").toggle(function(){
   if (isFirstToggle === true){
      isFirstToggle = false;
      return;
}, function(){
   //do stuff on second toggle.
});

让我知道你的想法,如果这看起来合适的话。可能有更干净的方法来处理它,但这应该很快就会起作用。

这将始终禁用第一个切换。这可能不是所希望的。如果是这种情况,您可以颠倒两个函数的顺序:o) 这将始终禁用第一个切换。这可能不是所希望的。如果是这种情况,您可以颠倒两个函数的顺序:o) 嗨,帕特里克,谢谢你寄给我这个例子。如果我做得不对,我会使用它,但是如果你能告诉我其他函数如何调用切换,那就太棒了,因为它会清除很多混乱!非常感谢@六英尺-是的,只需使用我在答案顶部附近给出的第一个代码示例。
toggle()
只是一个
单击事件。因此,当您的其他事件对具有
切换
事件的元素进行更改时,只需对其执行
单击()
事件:
$(someselector)。单击()这将启动切换,就像它被点击一样。好的,我会尝试一下,然后再给你回复!谢谢Patrick到目前为止的帮助!嗨,帕特里克,谢谢你寄给我这个例子。如果我做得不对,我会使用它,但是如果你能告诉我其他函数如何调用切换,那就太棒了,因为它会清除很多混乱!非常感谢@六英尺-是的,只需使用我在答案顶部附近给出的第一个代码示例。
toggle()
只是一个
单击事件。因此,当您的其他事件对具有
切换
事件的元素进行更改时,只需对其执行
单击()
事件:
$(someselector)。单击()这将启动切换,就像它被点击一样。好的,我会尝试一下,然后再给你回复!谢谢Patrick到目前为止的帮助!