2013-02-12 47 views
0

我有下面的代码片段中的HTML:Javascript和HTML - 变不出来

<form class="navbar-search pull-right search-query" value = "" action="/search/?q=" style="line-height:25px;"> 
    <input type="text" id="navbarsearch" class="search-query span2" style="border-radius:14px 14px 14px 14px;" name = "q" placeholder="Search"> 
     <i class="icon-search icon-white" onclick="document.forms.search.submit();"></i> 
     &nbsp;&nbsp;&nbsp; 
</form> 

我想如下传递这个变量为Javascript,但查询变量没有被传递正确由于某种原因,我不认为......

<script type="text/javascript"> 
    $("#navbarsearch").click(function() { 
     // This sends us an event every time a user clicks the button 
     mixpanel.track('SearchQuery', {'query': document.getElementById('navbarsearch').value, 'url' : window.location.pathname}); 
    }); 
</script> 

该行为在MixPanel中显示,但查询变量不是。难道我做错了什么?

回答

1

你需要把它的document.ready里:当用户用鼠标点击

$(function() { // <--- there. 
    $("#navbarsearch").click(function() { 
    mixpanel.track(
     'SearchQuery', 
     { 
      'query': $(this).val(), 
      'url' : window.location.pathname 
     } 
    ); 
}); 
}); 
+0

我想这一点,它的检测的事件,并跟踪URL,而不是查询.... – user1328021 2013-02-12 15:14:29

+0

我已经编辑了答案。你需要把它放在document.ready中。 – 2013-02-12 16:48:58

+0

嗯现在不是事件检测事件的方式。它可能与页面上的其他JAvascript冲突吗? – user1328021 2013-02-12 18:50:10

0

的单击事件正在掀起。我想你想听按键?

尝试:

$("#navbarsearch").keydown(function() { 
    mixpanel.track('SearchQuery', { 
     'query': document.getElementById('navbarsearch').value, 
     'url' : window.location.pathname 
    }); 
});