2012-08-26 102 views
1

后不确定我有一个代码块,像这样:功能变为第一触发

function doSomething() { 
    someVar.on("event_name", function() { 
     $('#elementId').click(function(e) { 
      doSomething(); 
     }); 
    }); 
} 

// and on document ready 
$(function() { 
    $('#anotherElemId').click(function() { 
     doSomething(); 
    }); 
}); 

,我现在遇到的问题是,当我叫doSomething()anotherElemId点击事件(即在文件准备绑定)它按预期工作,但从elementId递归调用它不起作用。

任何想法?思维是我错过的小事。

+1

'(“#elementId”)点击(函数(E){'需要'$('#elementId')。click(function(e){' –

+0

也运行doSomething将显示在萤火虫中的返回值,因为你没有返回任何东西,它应该显示undefined,请返回'didSomethig'; – sabithpocker

+0

你确定你没有使用'doSomething'作为其他名字? – MaxArt

回答

0

someVar是一个实际的jQuery引用一个DOM元素? (例如$('#someitem'))

第二个问题是你不能在你想稍后实例化的函数中放置一个.click事件。如果你想只允许#elementId有一个click事件之后以前的一些活动,尝试测试,如果测试者变量是真:

var activated = false; 

$(function() { 
    $('#anotherElemId').click(function() { 
     activated = true; 
    }); 

    $('#secondElemId').on("event_name", function() { 
     if (activated) { 
      // code that happens only after #anotherElemId was clicked. 
     } 

    }); 
}); 
+0

someVar不是一个DOM元素。看到我的评论与链接到pastebin。点击事件正在被触发,因为我的控制台日志语句正在执行。我已经改变它在同时有2个链接单独连接/断开ID和setupSocket()函数外部附加的事件。似乎一切都被触发,但在第二次连接,断开连接后,我的服务器拒绝连接。非常感谢您的帮助,试图找出答案。 – Mecca

+0

并进行更新。我试图重新创建与socket.connect()的连接,但我应该使用相同的对象,并调用socket.socket.disconnect()按照http://stackoverflow.com/questions/9598900/how-to-reconnect之后你称为断开连接。所以真正的问题与我的问题无关,我的调试应该更彻底。 – Mecca