-2

我的最终目标是让 ajax 显示的内容可以点击,以将其值推送到文本框中。

现在我加载了ajax,但是当我点击它时,它不起作用。到目前为止,我已经为 jquery 分配了“a”标签,所以当它被点击时,它会将静态文本“works”放在 id=email-body 的 textarea 中。

$(document).ready(function() {

    // Expand Panel
    $('a').click(function(){ 
        $('#email-body').val($('#email-body').val()+'works');
    }); 

});

这适用于不属于 ajax 内容的标签,但不适用于 ajax 内容。我应该使用一个特殊的拉系统来获得 jquery 效果 ajax 内容吗?

静态文本和单击 a 标签也不是我真正想要的。

现在我的ajax正在做以下事情:

foreach($search_found as $search_row){
    $hint=$hint . '<a>'.ucwords($search_row['email_module_name']).'</a>';
}
echo $hint;

有没有办法让我做到:

阿贾克斯:

<div class="module" value="'.ucwords($search_row['email_module_name']).'">
     '.ucwords($search_row['email_module_name']).'
</div>

查询:

$(document).ready(function() {

    // Expand Panel
    $('.module').click(function(){ 
        $('#email-body').val($('#email-body').val()+'$this->value');
    }); 

});
4

4 回答 4

0

您需要使用以下.on功能:

$('div').on('click', '.module', function(){ 
    $('#email-body').val($('#email-body').val()+'$this->value');
});

这允许“点击”功能附加到通过 ajax 引入的元素。

于 2013-01-21T20:45:31.130 回答
0

您可以使用.on()将事件绑定到当前和未来的元素。

$(document).on("click", "a", function(){ 
    $('#email-body').val($('#email-body').val()+'works');
});

或者,

$(document).on("click", ".module", function(){
  $('#email-body').val($('#email-body').val()+'$this->value');
});
于 2013-01-21T20:47:12.183 回答
0

您想要的是委托事件,为此您可以使用.on()

$(document).ready(function() {

    // Expand Panel
    $(documnet).on('click', 'a', function(){ 
        $('#email-body').val($('#email-body').val()+'works');
    }); 

});
于 2013-01-21T20:47:47.050 回答
-1
$('.module').live('click', function(){ 
    $('#email-body').val($('#email-body').val()+'$this->value');
}); 

我想通了,然后回来看到有人发布了.on

我试过了,但没有用。起作用的是.live

于 2013-01-21T20:48:43.693 回答