[英]Select specific element from mulitple div tags for click event backbone
I have a html template 我有一个html模板
<div class="subtemplate-wrapper">
<div class="cover"></div>
<label>
<span>
Description
<abbr title="required">*</abbr>
</span>
</label>
<textarea required="required"></textarea>
<span class="help-block"> </span>
</div>
Also I want to bing an event click on this based on class subtemplate-wrapper. 我也想通过类subtemplate-wrapper对此事件单击。 How do i get which elemt was was clicked ?
我如何获取被点击的元素? I want to later get the access the value of the element clicked.
我想稍后再获取单击元素的值。
events: {
'click .subtemplate-wrapper': 'getTextInput'
},
getTextInput: function(ev) {
var clicked_element = $(ev.currentTarget) // does not give me what is clicked !
},
Use 采用
var $clicked_element = $(ev.target)
This will give you the element on which the event has occurred. 这将为您提供发生事件的元素。
And then the usual $clicked_elemen.val()
然后是通常的
$clicked_elemen.val()
ev.currentTarget
will always give you the element to which the event was bound, in this case, <div class="subtemplate-wrapper">
ev.currentTarget
将始终为您提供事件绑定到的元素,在这种情况下,为<div class="subtemplate-wrapper">
Also, if you really want a click
handler only on the TextArea
, you should rather have your selector as 另外,如果你真的想要一个
click
只有在处理TextArea
,你倒是应该有你的选择为
'click .subtemplate-wrapper textarea': 'getTextInput'
than on the wrapper itself. 而不是包装器本身。
events: {
'click .subtemplate-wrapper': 'getTextInput'
},
getTextInput: function(ev) {
var clicked_element = $(ev.currentTarget) // does not give me what is clicked !
console.log('text is ');
console.log(clicked_element.find('textarea').val());
},
As I commented above, you should not bind to the wrapper because when use clicks in the text area, it will execute. 正如我在上面评论的那样,您不应绑定到包装器,因为在文本区域中使用单击时,它将执行。 You should bind do something like this:
您应该绑定执行以下操作:
<div class="subtemplate-wrapper">
<div class="cover"></div>
<label>
<span>
Description
<abbr title="required">*</abbr>
</span>
</label>
<textarea id="textContent" required="required"></textarea>
<span class="help-block"> </span>
<div id="submit">
Submit
</div>
</div>
events: {
'click #submit': 'getTextInput'
},
getTextInput: function(ev) {
var clicked_element = $(ev.currentTarget)
console.log('text is ');
console.log(clicked_element.parent().find('textarea').val());
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.