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