【问题标题】:How would I bind this to the onclick event in JQUERY?我如何将它绑定到 JQUERY 中的 onclick 事件?
【发布时间】:2010-11-12 20:08:25
【问题描述】:

我在 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() {
    ????
  });
});

【问题讨论】:

    标签: php javascript jquery dom events


    【解决方案1】:
    $(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:我正在编写与您相同的解决方案,但您首先想出了它!很好:)
    • 他的 price_counter 似乎在一个未列出的 PHP 循环中,所以您的第一个示例看起来不起作用。
    • 感谢您抽出宝贵的时间为我写完这一切,我会研究一下,看看如何最好地使用它:-)
    【解决方案2】:

    你可以这样做:

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

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

    【讨论】:

      【解决方案3】:

      将您的 $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; ?>>"
      

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

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

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签