如何为我的按钮提供相同的效果?因为它们都是一样的。但我想做的就是在点击它们时进行“灵魂般的”验证。
我在php中的代码
echo "<form action='receipt.php?name=$name' method='post'>
<input style='position:absolute; top:$this->yForBuy; left:$this->xForBuy; z-index:4;' type='button' id='btnSubmit' value='Purchase'/>
<input type='hidden' name='bidder' value='$name'>
<input type='hidden' name='item_no' value='$no'>
<input type='hidden' name='item_name' value='$itname'>
<input type='hidden' name='item_price' value='$bid'>
</form>";
<label id='soul' style='position:absolute; z-index:5; color:black;'>purchased!</label>
这是我在js中的代码
$(document).ready(function(){
$("#soul").hide();
$("#btnSubmit").click(function()
{
var position = $(this).position();
var topTo = position.top-10;
alert("position: "+position.top+"\n new position:"+topTo);
$("#soul")
.css({'top' : topTo , 'left' : position.left, 'display' : 'block'})
.show();
});
});
如果你在这里使用OOP结构,这就是为什么我有多个按钮具有相同的功能。我在javascript部分挣扎,我不知道我是怎么做的。
答案 0 :(得分:2)
id属性在页面上应该是唯一的,而不是为每个按钮重复。
JS无法处理#btnSubmit
不止一次出现的事实。
如果代码是由php循环生成的,那么您可能需要实现id的编号.. #btnSubmit1
,#btnSubmit2
等。
在按钮中添加一个类并将其用作公共选择器或试用HTML5 data attributes:
echo "<form action='receipt.php?name=$name' method='post'>
<input style='position:absolute; top:$this->yForBuy; left:$this->xForBuy; z-index:4;' type='button' class='purchaseButton' value='Purchase'/>
<input type='hidden' name='bidder' value='$name'>
<input type='hidden' name='item_no' value='$no'>
<input type='hidden' name='item_name' value='$itname'>
<input type='hidden' name='item_price' value='$bid'>
</form>";
<label id='soul' style='position:absolute; z-index:5; color:black;'>purchased!</label>
然后:
$(document).ready(function(){
$("#soul").hide();
$(".purchaseButton").click(function()
{
var position = $(this).position();
var topTo = position.top-10;
alert("position: "+position.top+"\n new position:"+topTo);
$("#soul")
.css({'top' : topTo , 'left' : position.left, 'display' : 'block'})
.show();
});
});
为了动画,包含表单的id属性(同样必须是唯一的)
<form action='receipt.php?name=$name' id='FORMID' method='post'>
然后在js:
$(document).ready(function(){
$("#soul").hide();
$(".purchaseButton").click(function()
{
var position = $(this).position();
var topTo = position.top-10;
alert("position: "+position.top+"\n new position:"+topTo);
$("#soul")
.css({'top' : topTo , 'left' : position.left, 'display' : 'block'})
.show();
$('#WHATEVER').animate({
// whatever options here..
complete: function() {
// this will run after the animation has finished
$('#FORMID').submit(); // manually submit the form
}
});
});
});