我有以下用于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() {
????
});
});
答案 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);
});
这是未经测试的,但它应该给你一个粗略的开始。