我如何将它绑定到JQUERY中的onclick事件?

时间:2009-07-21 23:57:23

标签: php javascript jquery dom events

我有以下用于DIV标签的传统onclick事件

我将如何使用jquery实现此目的?

$parameter = "onClick=\"selprice('" .
  $price_options_array[$price_counter]['price'] . "','" .
  $price_counter . "')" . "\"";

我使用上面的内容并将其添加到我的div中,如下所示:

<div class="price_row" <?php echo $parameter; ?>>

到目前为止,我使用jquery方法,但我不知道如何继续?

$(document).ready(function() {
  $('.price_row').click(function() {
    ????
  });
});

3 个答案:

答案 0 :(得分:5)

$(function() {
  $("div.price_row").click(function() {
    selprice("<?php echo $price_options_array[$price_counter]['price'] ?>", "<?php echo $price_counter ?>");
  });
});

但我不一定会建议。另一种方法是将必要的日期放在可以在运行时查询它的位置。例如:

<div class="price_info")
  <div class="price"><?php echo $price_options_array[$price_counter]['price'] ?></div>
  <div class="counter"><?php echo $price_counter ?></div>
</div>

结合CSS:

div.price_info div.price, div.price_info div.counter { display: none; }

然后:

$(function() {
  $("div.price_row").click(function() {
    var price = $(this).children("price").text();
    var counter = $(this).children("counter").text();
    selprice(price, counter);
  });
});

动态生成的Javascript有时会变得有些混乱。

您也可以使用jquery.data()而不是使用子元素。您只需要在PHP中正确构造类属性以包含必要的数据。

答案 1 :(得分:0)

将$ price_options_array移动到javascript数组。

'var price_options = ' . $price_options  // or however you do it in PHP

当您在循环中创建div时,使用price_counter(pc)添加额外的标记

"<div pc='". $price_counter . "'class="price_row" <?php echo $parameter; ?>>"

然后可以在jquery循环中访问“pc”变量,price_options信息也可以访问

$(document).ready(function() {

  $('.price_row').click(function() {
     var pc = $(this).attr('pc');
     var price = price_options[pc]['price'];
     selprice(price, pc);
  });
});

希望有所帮助。

答案 2 :(得分:0)

您可以执行以下操作:

PHP:

<script language="text/javascript">var price_options = <?php echo json_encode($price_options_array); ?></script

for ( $y = 0; $y < $prices; $y++ )
{
  echo '<div class="price_row" id="price_' . $y . '">Foo</div>';
}

在jQuery中:

$('div.price_row').click(function(){
    var id = $(this).attr('id').split('_');
    selprice(price_options[id], id);
});

这是未经测试的,但它应该给你一个粗略的开始。