具有相同效果的相同按钮 - jquery OOP

时间:2014-03-26 04:33:10

标签: javascript php jquery oop

如何为我的按钮提供相同的效果?因为它们都是一样的。但我想做的就是在点击它们时进行“灵魂般的”验证。

我在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部分挣扎,我不知道我是怎么做的。

enter image description here

1 个答案:

答案 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
               }
            });
        });
     });