我需要能够绕过切换的第一个功能,我想知道jquery切换是如何工作的?
据我所知,如果我点击某些内容,则会执行第一个功能,然后当我再次点击它时,会执行第二个功能。
我需要做的是绕过第一个功能并直接转到第二个功能。
我这样做的原因是按钮的状态已被另一个发生的事件更改。当我第一次点击该按钮时,它假定它是第一次被点击,并且当我需要它执行第二个功能时将执行第一个功能。
有解决方法吗?如果jQuery toggle函数等于true或false,那么我应该能够检查这个并调用正确的脚本吗?
非常感谢!
答案 0 :(得分:1)
我假设在第一个切换之前,其他事件总是 ,否则你可以反转这些功能。
你可以改变你的其他事件来解雇切换吗?如果另一个事件执行相同的任务,那么这将是要走的路。
// From within the other event's handler
$(someselector).click(); // to fire the toggle
否则,您可以使用.data()
在元素上放置一个标志,以检查toggle()
是否已经触发了。如果没有,则进行第一次功能测试,以查看该元素是否已被其他事件修改过。
$(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
}
);
答案 1 :(得分:0)
您可以在切换功能之外创建变量:var isFirstToggle = true;
。
然后在你的切换回调中,如果它等于true则返回;
var isFirstToggle = true;
$("#myId").toggle(function(){
if (isFirstToggle === true){
isFirstToggle = false;
return;
}, function(){
//do stuff on second toggle.
});
让我知道你的想法,如果这看似合适。可能有更简洁的方法来处理它,但这应该是快速的肮脏。