如果我在一個骨幹視圖的「事件」散列聲明我的事件,就像這樣:骨幹事件哈希VS jQuery的事件聲明
events: {
'mouseenter #socialMediaContainer': 'showSocialMediaLinks',
'mouseleave #socialMediaContainer': 'hideSocialMediaLinks',
'mouseenter #socialMediaContainer .links li': 'emphasizeSocialMediaLink',
'mouseleave #socialMediaContainer .links li': 'resetSocialMediaLink',
},
// Never gets fired
showSocialMediaLinks: function (e) {
alert('mouse enter SM');
},
// Never gets fired
hideSocialMediaLinks: function (e) {
alert('mouse leave SM');
},
// Works fine
emphasizeSocialMediaLink: function (e) {
alert('emphasize SM');
},
// Works fine
resetSocialMediaLink: function (e) {
alert('reset SM');
},
前兩個事件不火,但最後2做工精細。我可以看到的唯一區別是,選擇指定的子元素(如:#socialMediaContainer .links li
,但我不知道爲什麼,這將使任何區別
相關的HTML源代碼如下:。
<div id="socialMediaContainer">
<ul class="links">
<li><a href="#"><img src="/Content/images/socialmedia/linkedin.png" alt="LinkedIn" /></a></li>
<li><a href="#"><img src="/Content/images/socialmedia/tumblr.png" alt="Tumblr" /></a></li>
<li><a href="#"><img src="/Content/images/socialmedia/twitter.png" alt="Twitter" /></a></li>
<li><a href="#"><img src="/Content/images/socialmedia/googleplus.png" alt="Google+" /></a></li>
<li><a href="#"><img src="/Content/images/socialmedia/facebook.png" alt="Facebook" /></a></li>
</ul>
<div class="shareTab">
<div>Share</div>
</div>
</div>
如果我添加一個initialize()
方法這一觀點,併成立了事件處理程序出現,他們很好地工作:
initialize: function() {
$('#socialMediaContainer').on('mouseenter', this.showSocialMediaLinks);
// etc...
},
但理想的我希望能夠只使用哈希事件的一致性所有。想法爲什麼那些前2個事件似乎沒有得到bou nd,但第二個2呢?對於它的價值,我也嘗試使用this.showSocialMediaLinks
作爲事件散列值以及字符串'showSocialMediaLinks'
。
我想我已經包含了上述所有相關信息,請讓我知道如果您需要任何其他診斷。謝謝。
您查看元素是否爲「#socialMediaContainer」?如果是這樣,你可以試試'mouseenter':'showSocialMediaLinks''? – nikoshr
是的,這是問題所在。我不明白選擇者是與「el」相關的。 – Twicetimes