点击任何标签都必须执行JQuery功能

时间:2010-01-20 12:14:56

标签: jquery

我有一个带有标签的侧面菜单,用于定义菜单项并动态生成。当用户点击任何项目时,必须执行以下代码:

$("#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>

5 个答案:

答案 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'...)这个功能。