Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干单击事件属性_Javascript_Backbone.js_Backbone Events - Fatal编程技术网

Javascript 主干单击事件属性

Javascript 主干单击事件属性,javascript,backbone.js,backbone-events,Javascript,Backbone.js,Backbone Events,我在这里使用了backbone.js“单击”事件。onClick事件,我想选择单击的HTML元素,删除它并添加到添加的列表中 我无法访问我单击的所有HTML dom元素。获取HTML元素后 如果我单击“中国”,下面的代码将提示“中国” 那么,如何访问所有dom属性 Java脚本代码: var ActionBox = Backbone.View.extend({ el:$("#container"), events: { "c

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

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

如果我单击“中国”,下面的代码将提示“中国”

那么,如何访问所有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();
var ActionBox=Backbone.View.extend({
el:$(“集装箱”),
活动:{
“单击#添加li”:“添加项”,
“单击#警报”:“警报此处”
},
初始化:函数(){
_.bindAll(本“增补”、“呈现”);
这个。render();
},
render:function(){
这是一个;
},
附加项:功能(ev){
var ac=$(ev.target.html();//单击我们之后,它不会给我“
  • US
  • ” 警报(ac); }, prepareActions:function(){ var str=“”;
    对于(var i=0;i我尝试自己用主干0.9.1运行它,一切正常。确保包括

    var ActionBox = Backbone.View.extend({
        el:$("#container"),
        ...      
    });
    
    在呈现HTML之后。否则,在它实际存在于DOM中之前指定
    $(“#容器”)
    。如果这样做,jQuery将不返回任何内容,因此将
    el
    设置为空数组,因此您的事件将不绑定任何内容…因此永远不会调用它们


    下面是一个JSFIDLE,它可以正常工作:。请注意,您必须将所有JavaScript包装在一个jQuery DOM就绪处理程序中。这将确保在加载HTML之前不会运行代码。

    我尝试使用主干0.9.1运行它,一切正常。请确保包括

    var ActionBox = Backbone.View.extend({
        el:$("#container"),
        ...      
    });
    
    在呈现HTML之后。否则,在它实际存在于DOM中之前指定
    $(“#容器”)
    。如果这样做,jQuery将不返回任何内容,因此将
    el
    设置为空数组,因此您的事件将不绑定任何内容…因此永远不会调用它们


    下面是一个JSFIDLE,它可以工作:。注意,您必须将所有JavaScript包装在一个jQuery DOM就绪处理程序中。这将确保在加载HTML之前不会运行代码。

    您只需要使用appendTo-这将删除它并将其放入您的#添加的UL中


    您只需要使用appendTo-这将删除它并将其放入您的#添加的UL中


    你得到了什么警报?如果你点击
    US
    ,它会说
    US
    (不是
  • US
  • )。你自己试试JSFIDLE。例如,谢谢,我想要as$(ev.target).html()的警报as
  • US
  • 。啊,我不知道这是问题所在。我以为它根本没有返回任何东西。我的错误。你得到了什么警报?如果你点击
    US
    ,它会说
    US
    (不是
  • US
  • )。你自己试试JSFIDLE。例如,谢谢,我想要as$(ev.target).html()的警报作为
  • US
  • 。啊,我不知道这是问题所在。我以为它根本没有返回任何东西。我的错误。酷..+1。它解决了问题。但是,你能告诉我,为什么jquery的.html()不能在那里操作吗?这意味着,$(ev.target)没有给我实际的DOM元素..html()提供元素中的内容,.get(0)给您元素本身。如果有多个元素,请使用get(1),get(2)gr8.$($(ev.target).get(0)).html()给我带来了我想知道的:)一个更好的方法是执行alert($(ev.target).get(0).outerHTML;-这将返回第一个itemcool..+1的完整html值。它解决了问题。但是,您能告诉我,为什么是.html()jquery的一部分不能在那里操作?这意味着,$(ev.target)没有给我实际的DOM元素..html()给你元素内部的内容,.get(0)给你元素本身。如果有超过1个元素,使用get(1),get(2)gr8。$($(ev.target.get(0)).html()给我我想知道的:)更好的方法是执行警报($(ev.target.get(0.outerHTML);-返回第一项的完整HTML值
    $(ev.target).appendTo('#added');