我有一个带有标签的侧面菜单,用于定义菜单项并动态生成。当用户点击任何项目时,必须执行以下代码:
$("#label").click( function(event) ){
$.get(
"../../phplibraries/productlist.php",
{
ControlName: 'ulCategoryName',
Category: 'Beverages'
},
function(data) {
$('#divList').html(data);
});
});
我没有关注如何捕获任何实际上是菜单项的标签。
- 已编辑 -
侧边菜单的HTML如下:
<?php
error_reporting(E_ALL^E_NOTICE);
ini_set('display_errors', '1');
require_once('dbaccess.php');
$ulName = $_GET['ControlName'];
$category = $_GET['Category'];
$result=mysql_query("SELECT pname FROM products WHERE category='".$category."'");
?>
<ul id="<?php echo $ulName; ?>" name="<?php echo $ulName; ?>">
<?php while($row=mysql_fetch_array($result))
{ ?>
<label id="lblCategory" name="lblCategory" style="font-size:medium;"><?php echo $row[1]; ?></label><br />
<!--<li style="font-size:medium;"><?php echo $row[1]; ?></li>-->
<?php } ?>
</ul>
答案 0 :(得分:3)
第一行中有语法错误:
$("#label").click( function(event) ){
应该是:
$("#label").click( function(event) {
删除哈希(#)。 #something
表示select element with ID 'something'
。由于您希望将此事件处理程序绑定到所有标签,只需使用$('label')
。
有关如何选择各种元素的更多信息,请参阅jQuery的manaul on Selectors。
答案 1 :(得分:1)
如果您需要动态加载标签以使您所描述的行为考虑使用jQuery live() 通常,您可以在创建菜单时使用所需的选择器为某些元素定义行为,并且所有动态创建的元素将回答此选择器将获得相同的行为。
答案 2 :(得分:0)
尝试删除哈希(#):
$("label").click(function(event)){
$.get("../../phplibraries/productlist.php", {ControlName: 'ulCategoryName', Category: 'Beverages'},
function(data){
$('#divList').html(data);
});
});
这将绑定每个标签。你可能想限制它。 E.g。
$("#SomeContainerDiv label").click(function(event){
答案 3 :(得分:0)
从代码中删除“#”就可以了
答案 4 :(得分:0)
因为你是动态生成的,所以我会考虑使用.live('click'...)这个功能。