繁体   English   中英

骨干点击事件属性

[英]Backbone Click Event Properties

我在这里使用了ribs.js的click事件。 onClick事件,我想选择单击的HTML元素,将其删除并添加到添加的列表中。

我无法访问单击过的所有HTML dom元素。 获得HTML元素之后。

如果单击“中国”,则以下代码将警告“ <li>China</li> ”。

因此,如何访问所有dom属性?

Java脚本代码:

var ActionBox = Backbone.View.extend({
        el:$("#container"),
        events: {
                    "click #add li": "addItem",
                    "click #alert": "alertHere"
        },
        initialize: function(){     
                _.bindAll(this,"addItem","render");             
                this.render();  
        },
        render:function(){  
                this.prepareActions();          
        },
        addItem:function(ev){
                var ac=$(ev.target).html(); // it doesn't give me "<li>US</li>" after clicking US
                alert(ac);
                },
        prepareActions:function(){          
                    var str="";
                    for(var i=0;i<actions.length;i++)   str+="<li>"+actions[i]+"</li>";                         
                    $("#add ul").append(str);
        }       
    });    
var actionBox = new ActionBox();

和HTML代码如下:

    <div id="container">
    <table>
    <tr>
        <td>
            <div id="add">      
                <ul>
                 <li>US</li>
                 <li>China</li>
                 <li>UK</li>
                </ul>
            </div>
        </td>
        <td>
            <div id="controls">

            </div>
        </td>
        <td>
            <div id="added">        
                <ul></ul>
            </div>
        </td>
    </tr>
    </table>        
</div>

有两个ul容器,分别添加和添加。如果我单击源中的元素,则应将其移入目标容器。

您只想使用appendTo-将其删除并将其放入您的#added UL中

$(ev.target).appendTo('#added');

我尝试使用Backbone 0.9.1自己运行它,并且一切正常。 确保您包括

var ActionBox = Backbone.View.extend({
    el:$("#container"),
    ...      
});

呈现HTML 之后 否则,您要在$("#container")在DOM中实际存在之前指定它。 如果这样做,jQuery将不返回任何内容,因此将el设置为空数组,因此您的事件将被绑定为任何内容……因此,将永远不会调用它们。

这是一个工作的jsFiddle: http : //jsfiddle.net/8jyeb/1/ 注意,您必须将所有JavaScript包装在jQuery DOM Ready处理程序中。 这将确保在HTML加载之前代码不会运行。

暂无
暂无

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

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