我有一个“待定”按钮。什么都不做。惊人的。但是我想做的是当用户将鼠标悬停在它上面时,<form>
出现并将“待定”更改为“取消”。
无论如何,我都不是 js 专业人士。我不知道我做错了什么。建议?
非常感谢您的帮助,谢谢!
我有一个“待定”按钮。什么都不做。惊人的。但是我想做的是当用户将鼠标悬停在它上面时,<form>
出现并将“待定”更改为“取消”。
无论如何,我都不是 js 专业人士。我不知道我做错了什么。建议?
非常感谢您的帮助,谢谢!
猜你错过了$
?
$(function(){
function revealButton(shown, hidden) {
$(shown).mouseenter(function(){
$(this).parent().next().children(hidden).show();
});
$(hidden).mouseleave(function(){
$(this).hide();
});
};
revealButton("button.pending", "button.cancel");
}());
看看这个:http: //jsfiddle.net/ym4SK/4/
好吧,最初会显示取消,但您可以在 HTML 中的 button.cancel 上添加 display:none。喜欢这里
(function(){
function revealButton(shown, hidden) {
$(shown).mouseenter(function(){
$(this).parent().next().children(hidden).show();
$(shown).hide();
});
$(hidden).mouseleave(function(){
$(this).hide();
$(shown).show();
});
};
revealButton("button.pending", "button.cancel");
}());
另一种方法是使用.hover()
jquery 中的函数。
$(function(){
$('button').hover(
function(){
$(this).html('Cancel').removeClass("pending").addClass("cancel");
},
function(){
$(this).html('Pending').removeClass("cancel").addClass("pending");
}
);
});
看看这个jsfiddle
更改的 HTML:
<div>
<form method="POST" action="yaddaydahdasda">
<button class="pending">Pending</button>
<button type="submit" class="cancel">Cancel</button>
token here
<input type="hidden" value="myvalue" />
</form>
</div>
添加到CSS:
.cancel{
position:absolute;
cursor:pointer;
left:0px;
top:0px;
/* ... */
}
固定的jQuery:
(function(){
function revealButton(shown, hidden) {
$(shown).mouseenter(function(){
$(this).next( $(hidden) ).show(); // fixed
});
$(hidden).mouseleave(function(){
$(this).hide();
});
}
revealButton(".pending", ".cancel");
}());
目前还不是 100% 清楚你想要做什么,但这是我最好的猜测:
(function(){
function revealButton(shown, hidden) {
$(hidden).hide();
$(shown).hover(function()
{
$(hidden).show();
$(shown).hide();
}, function() {});
$(hidden).hover(function() {}, function()
{
$(shown).show();
$(hidden).hide();
});
};
revealButton("button.pending", "button.cancel");
}());
注意:最好hover
用于这样的事情。
继承人的东西,这里的所有代码而不是小提琴。
首先,当您的问题解除时,您希望将待定按钮更改为取消,所以我从 html 中删除了另一个按钮
<div>
<input type='submit' class="pending" value='Pending' />
</div>
<form method="POST" action="yaddaydahdasda" id="form">
{% csrf_token %}
<input type="hidden" value="myvalue" />
</form>
现在一些 jQuery 动作。
<script type='text/javascript'>
$(document).ready(function() {
// if jquery dosent load for some reason, form will be visible. Thats why we hide it when on DOM ready
$("#form").hide();
});
$(".pending").on('mouseover',function() {
$(this).removeClass('pending').addClass('cancel');
$(this).val('Cancel');
$("#form").show();
});
$(".pending").on('click', function(e) {
e.preventDefault();
return false;
});
$(".cancel").on('click',function() {
$(this).removeClass('cancel').addClass('pending');
$(this).val('Pending');
$("#form").hide();
});
就是这样!奇迹般有效!您可能想在表单中添加一些 CSS,例如。让它漂浮在按钮或其他东西旁边?