JavaScript/jQuery在触发时遇到问题
所以,当我点击一个按钮时,我只想触发一个元素从它的位置到另一个位置。然后,如果我再次单击按钮,我希望它回到原来的位置。 我有这个密码JavaScript/jQuery在触发时遇到问题,javascript,jquery,Javascript,Jquery,所以,当我点击一个按钮时,我只想触发一个元素从它的位置到另一个位置。然后,如果我再次单击按钮,我希望它回到原来的位置。 我有这个密码 $(document).ready(function() { $('.trigger').click(function() { $('.trigger').toggle( function() { $('.mod').css({'margin-left':'0px'}); },
$(document).ready(function() {
$('.trigger').click(function() {
$('.trigger').toggle(
function() {
$('.mod').css({'margin-left':'0px'});
},
function() {
$('.mod').css({'margin-left':'-100px'});
}
);
});
});
当我按下按钮时,元素会执行我想要的操作。但是按钮不见了。我不太确定元素是否会被触发回来。现在我只需要一个可以完成这项工作的工作代码。
.toggle()
正在隐藏和显示目标元素,因此您需要其他东西。一种方法是,只需检查元素的左边距
:
$(document).ready(function() {
$('.trigger').click(function() {
alert($('.mod').css('margin-left'));
if($('.mod').css('margin-left') == '0px') {
$('.mod').css('margin-left', '-10px');
}
else {
$('.mod').css('margin-left', '0px');
}
});
});
这个怎么样
$(document).ready(function() {
$('.trigger').click(function(event) {
event.preventDefault();
if ( $(this).hasClass("isLeft") ) {
$(".mod").stop().css({'margin-left':'0px'});
} else {
$(".mod").stop().css({'margin-left':'50px'}); //given +50px because it disappears when -50px is given
}
$(this).toggleClass("isLeft");
return false;
});
});
如果您使用的是jQuery 1.9或更高版本,问题在于
.toggle()
事件处理方法已从库中删除
您可以实现自己的切换:
$(document).ready(function() {
$(".trigger").click(function() {
var f = !$(this).data("toggleFlag");
if (f) {
$('.mod').css({'margin-left':'0px'});
} else {
$('.mod').css({'margin-left':'-100px'});
}
$(this).data("toggleFlag", f);
});
});
这将使用该方法跟踪布尔标志,以指示要执行的代码
您需要
切换,.mod
而不是.trigger
$(document).ready(function() {
$('.trigger').click(function() {
$('.mod').toggle(
function() {
$('.mod').css({'margin-left':'0px'});
},
function() {
$('.mod').css({'margin-left':'-100px'});
}
);
});
});
如果你能把你所做的事情整理一下,社区对你的帮助将是完全有帮助的。你能显示.trigger
的html吗。不知道如何处理两次回调。您的版本是否由插件提供?你期望它做什么?