繁体   English   中英

Javascript/jquery .click() 不触发功能

[英]Javascript/jquery .click() not triggering function

我有一个表格,其中在点击每一行中的链接时会触发一些功能:

代码的相关部分是:

$('.my_table').inplacerowedit({
     url: myurl,
    });

在 inplacerowedit.js 文件中,我有:

(function($) {
    $.fn.inplacerowedit = function(options) {
        var ops = $.extend({}, $.fn.inplacerowedit.defaults, options);
        $(this).find(ops.editbuttonselector).on('click', function(e) {
    ... }

ops.editbuttonselector = 'a.edit'

我的表格每行都有一个编辑链接,它通常工作正常。 我的问题是新创建的行。

这是我创建一行并将其添加到表中的方法:

    new_row = null

    getNewRow = function() {
        if (new_row == null){
            new_row = $("<tr>");
            columns = {'name':'','type':'','value':'','edit':'','delete':''}
            for (var column in columns)
                new_row.append( $("<td>").addClass(column).text(columns[column]));
            links = ['edit','delete']
            for (var i=0;i<links.length;i++){
                link = links[i]
                a = $("<a href='"+link+"' class='"+link+"'>").text(link);
                new_row.find("."+link).append(a)
            }
        }
        return new_row
    };

    $("#addRowAndEdit").click(function(e){
        e.preventDefault();
           var row = getNewRow();
           $(".my_table").append(row);
           new_record = $('.my_table tbody>tr:last');
           new_record.find('a.edit').click(); //this is the line that is not working.
           ....
    }

更新:

如果我做new_record.find('a.edit').on('click', alert('ok')); ,警报功能有效,但未调用另一个。

有任何想法吗? 谢谢

使用事件委托,以便新添加的行由附加到表的处理程序处理,而不是将其附加到每个单独a元素,为此,替换inplacerowedit.js的以下行:

$(this).find(ops.editbuttonselector).on('click', function(e) {

对于这个:

$(this).on('click', ops.editbuttonselector, function(e) {

已编辑

如果您使用的是 1.6+ 的最新 jquery 版本,那么您应该试试这个:

new_record.find('a.edit').live('click',function(){
    // All your desired stuff here
});

试试看这是否适合你。

Just because you are dynamically creating the rows ,对于这种情况.live()事件处理程序很有用。

你可以在这里找到更多信息: http : //api.jquery.com/live/

我必须进行 2 个更改:一个是 nelson 建议的(出于某种原因,我第一次尝试他的建议时,它破坏了现有链接)和另一个像这样:new_record.find('a.edit')[0 ]。点击()

我在https://stackoverflow.com/a/12110482/210481找到了答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM