jQuery BlockUI脚本上的重复区域无法正常工作

时间:2010-11-19 03:09:58

标签: php jquery mysql jquery-blockui

我正在尝试在jQuery BlockUI脚本上使用重复区域,但它无法工作。

这是我现在使用的代码:

    <?php do { ?>
<script type="text/javascript"> 
    $(document).ready(function() { 

        $('#t<?php echo $row_dd31['dNo']; ?>').click(function() { 
            $.blockUI({ message: $('#q<?php echo $row_dd31['dNo']; ?>'), css: { width: '1024px' } }); 
        }); 

        $('#yes').click(function() { 
            // update the block message 
            $.blockUI({ message: "<h1>Remote call in progress...</h1>" }); 

            $.ajax({ 
                url: 'wait.php', 
                cache: false, 
                complete: function() { 
                    // unblock when remote call returns 
                    $.unblockUI(); 
                } 
            }); 
        }); 

        $('#no').click(function() { 
            $.unblockUI(); 
            return false; 
        }); 

    }); 
</script> 
<?php } while ($row_dd31 = mysql_fetch_assoc($dd31)); ?>

为什么不起作用?

可以不使用PHP重复区域和JavaScript吗?如果没有,有没有其他选择?


这是模态对话框的代码:

<!-- modal -->              

<?php do { ?>
<div id="q<?php echo $row_dd31['dNo']; ?>" style="display:none; cursor: default"> 
<h3>Driver <?php echo $row_dd31['dNo']; ?></h3><p>
<input type="button" id="yes" value="Save" style="width: 75px; height: 50px;"/> <input type="button" id="no" value="Exit" style="width: 75px; height: 50px;"/> 
</div> 
<?php } while ($row_dd31 = mysql_fetch_assoc($dd31)); ?>

这是瓷砖的生成方式:

<tr height="100px" align="center">        
            <?php do { ?>
            <td style="background-color: <?php echo $row_dd1['colour']; ?>;">   
              <input type="hidden" id="<?php echo $row_dd1['dNo']; ?>">
              <button type="submit" class="link" id="t<?php echo $row_dd1['dNo']; ?>"><span><?php echo $row_dd1['dNo']; ?></span></button>
            </td>
            <?php } while ($row_dd1 = mysql_fetch_assoc($dd1)); ?>
        </tr>

2 个答案:

答案 0 :(得分:2)

我认为问题是你正在尝试生成jQuery以适应每个自定义行id,这在理论上有效,但我会说这是非常糟糕的应用程序设计。我建议写一个简单的脚本,可以一次处理所有行,例如

<div class="my-row-to-bind-jquery-to" id="xyz">...</div>
<div class="my-row-to-bind-jquery-to" id="xyz1">...</div>
<div class="my-row-to-bind-jquery-to" id="xyz2">...</div>
<div class="my-row-to-bind-jquery-to" id="xyz3">...</div>

然后你可以简单地将ui的阻塞和解除阻塞绑定到类而不是像下面的每个个体id

$(document).ready(function() {
  $('.my-row-to-bind-jquery-to').click(function() {
    var id = this.id;

    // do the rest of your stuff here
  });
});

答案 1 :(得分:1)

好的,你能详细说明

$.blockUI({ message: **$('#parent-row-container')** ...

应该是?

另外,您在javascript控制台中是否收到任何错误?