目前我的电脑中有一个文本“按钮”,View
它通过调用Javascript函数id
。
该View
代码混合了PHP和HTML以及一些JS。
<?php foreach($restaurant_by_legal_entities[$legal_entity_id] as $restaurant_id): ?>
<tr style="outline: thin solid">
<td class="left">
<a
id="collapse-restaurant"
data-token="<?= $token ?>"
style="text-decoration:none"
class="text"><?= $text_expand_symbol ?>
</a>
</td>
<td class="left"></td>
<td class="left"><strong>Sub-total - <?= $restaurant_name ?></</td>
<td class="left"></td>
<td class="left"></td>
<td class="left"></td>
<td class="left"></td>
<td class="left"></td>
<td class="right"><strong>¥<?= $total_by_restaurants[$restaurant_id] ?></strong></td>
</tr>
<?php endforeach ?>
我的JS文件:
/**
* Generate the URL to collapse the financial report to only show the totals
* only city, legal entity, and restaurant
*/
function collapse() {
console.log("Blah");
var url = commonGet('report/sale_financial', $(this).data('token'));
var collapse = $('input[name=\'collapse\']').attr('value');
if (collapse == 1) {
url += '&collapse=' + 0;
} else if (collapse == 0){
url += '&collapse=' + 1;
}
window.location = url;
}
$('#collapse-restaurant').click(collapse);
我注意到,当我单击第一个按钮(第一个表示第一个索引)时,我的collapse
函数将被调用[使用Chrome调试器进行测试]。但是,第一个索引之后的所有内容都不会被调用。经过一些自我研究,似乎每个都id
必须是唯一的,而目前并非如此。
既然看起来id
每个必须唯一.click()
,那么如何解决此问题?
在我的视图中使用class
而不是id
:
<?php foreach($restaurant_by_legal_entities[$legal_entity_id] as $restaurant_id): ?>
<tr style="outline: thin solid">
<td class="left">
<a
class="text collapse-restaurant"
data-token="<?= $token ?>"
style="text-decoration:none"><?= $text_expand_symbol ?>
</a>
</td>
<td class="left"></td>
<td class="left"><strong>Sub-total - <?= $restaurant_name ?></</td>
<td class="left"></td>
<td class="left"></td>
<td class="left"></td>
<td class="left"></td>
<td class="left"></td>
<td class="right"><strong>¥<?= $total_by_restaurants[$restaurant_id] ?></strong></td>
</tr>
<?php endforeach ?>
在JS文件中将处理程序绑定更改为此:
$('.collapse-restaurant').click(collapse);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句