我正在制作一款应用来帮助我找到工作。基本上,1。我有一系列公司网站,2。按钮点击以在新标签中加载companiesList [i],以及3. a
div添加公司列表中包含的网站[i] ]跟踪当前会话访问了多少和哪些网站。
我遇到的两个主要问题是 1.我所拥有的功能("点击",...)在页面加载时运行,而不是在我点击按钮时运行,当我点击按钮时,唯一发生的事情就是控制台显示"不推荐使用getPreventDefault()。请改用defaultPrevented。" 2.我当前的索引一直在重置(或者根本没有递增)到0,所以即使我按下按钮,我仍然会一遍又一遍地加载相同的网站,而不是加载包含在中的下一个网址。数组。
到目前为止,这是我的代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
<div id="Next Company's Website Button">
<input type="button" id="nextWebsiteButton" name="filter" value="Next Company's Website Button" />
</div>
<div id="Current Session">
<p>
</p>
</div>
<script src="companiesList.js"></script> /*Sample for StackOverflow: var companyList = [
"http://visual.ly/", "http://zesty.com/"];*/
<script>
var i = 0;
var countForSession = 1;
var nextCompany = function nextCompany() {
i++;
var win = window.open(companyList[i], '_blank');
win.focus();S
};
$("#nextWebsiteButton").on("click", nextCompany());
//For use with on("click")
var runProgram = function() {
//load next website
//i++ for array index
//Add current website to html div text, format: countForSession + ". " + "company " + i + companyList[i] + \n
};
</script>
</body>
</html>
答案 0 :(得分:2)
它立即执行的原因是由于以下行:
$("#nextWebsiteButton").on("click", nextCompany());
将其更改为:
$("#nextWebsiteButton").on("click", nextCompany);
通过向函数添加括号,您告诉javascript编译器立即执行该函数并使用该函数的结果作为单击处理程序。
答案 1 :(得分:1)
由于某种原因,你有一个额外的prettyPrintObjectMapper = new ObjectMapper();
prettyPrintObjectMapper.configure(SerializationFeature.INDENT_OUTPUT, true); //turn on
prettyPrintObjectMapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true);
String tmp1 = prettyPrintObjectMapper.writeValueAsString(myObject);
,你不应该有括号。这是更新的代码:
S
如果你想获得第一个索引,你还需要将var i = 0;
var countForSession = 1;
var companyList = ["http://visual.ly/", "http://zesty.com/"];
var nextCompany = function() {
var win = window.open(companyList[i], '_blank');
win.focus();
i++;
};
$("#nextWebsiteButton").on("click", nextCompany);
//For use with on("click")
var runProgram = function() {
//load next website
//i++ for array index
//Add current website to html div text, format: countForSession + ". " + "company " + i + companyList[i] + \n
};
放在后面。我还要添加一个if / else来检查下一页是否存在。
这是一个更新的小提琴:JSFiddle