gpt4 book ai didi

javascript - 动态 OnClick 按钮事件

转载 作者:行者123 更新时间:2023-11-28 16:13:55 24 4
gpt4 key购买 nike

我有一个动态创建的表,我想在每行中放置一个带有 onclick 事件的编辑/删除按钮。

但是,我不知道如何使它们与行的 id 唯一,然后为每个事件创建一个 onclick 事件,以便我可以更新/删除行中的值。

我尝试过:

<INPUT TYPE='BUTTON' NAME='EDIT_PRODUCT_FROM_SEARCH' ID=".$row['alpha_p_ID']." VALUE='Delete'>

但我不知道如何讲述该事件:

$('what to write here?').click(function() {

});

编辑:

按钮的创建有效,但 onclick 事件无效。代码如下:

PHP按钮代码

results_table = "<table cellspacing='0' style='border: 1px solid #405D99'><tr bgcolor='#405D99' style='color: white'><th>Main Image</th><th>Gallery Image 1</th><th>Gallery Image 2</th><th>Name</th><th>Type</th><th>Manufacturer</th><th>Quantity</th><th>Price-Wholesale</th><th>Price-Retail</th><th>Options</th></tr>";
while($row = mysql_fetch_array($results)){
$results_table .= "<tr>";
$results_table .= "<td bgcolor='#dfe3ee'><a href='products/".$row['alpha_p_imglink_main']."' rel='lightbox'><img src='products/".$row['alpha_p_imglink_main']."' width='150px' height='150px'; border='0'/></a></td>";
$results_table .= "<td bgcolor='#dfe3ee'><a href='products/".$row['alpha_p_imglink_gal1']."' rel='lightbox'><img src='products/".$row['alpha_p_imglink_gal1']."' width='150px' height='150px'; border='0'/></a></td>";
$results_table .= "<td bgcolor='#dfe3ee'><a href='products/".$row['alpha_p_imglink_gal2']."' rel='lightbox'><img src='products/".$row['alpha_p_imglink_gal2']."' width='150px' height='150px'; border='0'/></a></td>";
$results_table .= "<td bgcolor='#dfe3ee' align='center'>$row[alpha_p_name_en]</td>";
$results_table .= "<td bgcolor='#dfe3ee' align='center'>$row[alpha_p_type]</td>";
$results_table .= "<td bgcolor='#dfe3ee' align='center'>$row[alpha_p_firm_owner]</td>";
$results_table .= "<td bgcolor='#dfe3ee' align='center'>$row[alpha_p_quantity]</td>";
$results_table .= "<td bgcolor='#dfe3ee' align='center'>$row[alpha_p_price_wholesale]</td>";
$results_table .= "<td bgcolor='#dfe3ee' align='center'>$row[alpha_p_price_retail]</td>";
$results_table .= "<td colspan='1' rowspan='1' bgcolor='#f7f7f7' align='center'>";
$results_table .= "<a href='#' NAME='EDIT_PRODUCT_FROM_SEARCH' ID=".$row['alpha_p_ID']." CLASS='EDIT_BUTTON_CLASS'>Edit</a>";
$results_table .= "<a href='#' NAME='DEL_PRODUCT_FROM_SEARCH' ID=".$row['alpha_p_ID']." CLASS='DELETE_BUTTON_CLASS'>Delete</a>";
$results_table .= "</tr>";
}
echo "Query: " . $query . "<br />";
$results_table .="</table>";
echo $results_table;

点击:

                        $('.EDIT_BUTTON_CLASS').on("click", function(event) {
var e_id = $(this).attr('id');
var p_edit_id = $('input[name=P_NAME_EDIT]');
(p_edit_id).val(e_id);
alert("aaa");
});

onclick 事件应使用 ID 填充文本框并发布警报。

最佳答案

一个想法就是改变

<INPUT TYPE='BUTTON' NAME='EDIT_PRODUCT_FROM_SEARCH' ID="'.$row['alpha_p_ID'].'" VALUE='Delete'>

echo '<INPUT TYPE="BUTTON" NAME="EDIT_PRODUCT_FROM_SEARCH" ID=".$row['alpha_p_ID']." 
onclick="your_js_delete_function('.$row['alpha_p_ID'].');" VALUE="Delete">'

然后在JS中

function yourj_s_delete_function(id) {
//do something
// you could also id = $(this).attr('id');
}

您还可以分配一个类,以便您的

$('what to write here?').click(function() {

});

变成了

$('.delete_button').click(function() {
var id = $(this).attr('id');
.... rest of the code
});

注意:如果您的 $row['alpha_p_id'] 返回一个数值,最好添加一个字符串值作为前缀,因为只有数字的 ID 会导致标记验证失败

因此,您可以将 ID="'.$row['alpha_p_ID'].'" 更改为 ID="btn_'.$row['alpha_p_ID'].'"

你需要改变

var id_str = $(this).attr('id');
var id=id_str.split("_", 1);

更新

正如您提到的,这些按钮是动态创建的 - 您需要使用 on() 方法而不是 `click -

$('.delete_button').on("click", function(event){
alert("I am clicked!");
});

http://api.jquery.com/on/

关于javascript - 动态 OnClick 按钮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12073365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com