单击列表中的动态对象打开 link
Open link on clicking dynamic objects in a list
我在 Handlebars 中有一个生成动态列表的代码。
<ul id="expList">
{{#each hierarchy}}
<li class="index">{{@key}}
<ul>
{{#each this}}
<li class="country">{{@key}}
<ul>
{{#each this}}
<li class="cluster">{{@key}}
<ul>
{{#each this}}
<li class="farm">{{@key}}
</li>
{{/each}}
</ul>
</li>
{{/each}}
</ul>
</li>
{{/each}}
</ul>
</li>
{{/each}}
</ul>
现在我希望在单击元素时打开网页。 URL 将是单击的元素及其父元素的组合。
由于是动态的所以没有 id,我应该如何在 jQuery 中附加一个 onClick 事件。
提前致谢。
您可以使用 on()
: http://api.jquery.com/on/
$(document).on("click", ".cluster", function(e) {
// you can get your clicked element here
console.log("event");
});
编辑
所以对于农场:
$(document).ready(function() {
$(document).on("click", ".farm", function(e) {
var idfarm= $(this).attr('data-id');
var idcluster= $(this).parent().parent().attr('data-id');
$("#result").html(idfarm +"|"+ idcluster);
console.log("event");
// This cant work in Whosebug sandbox allow-popups permission is not set
window.open('http://localhost:8000?farm='+idfarm+'&cluster='+idcluster,'GoogleWindow', 'width=800, height=600');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="cluster" data-id="key cluster">key cluster
<ul>
<li class="farm" data-id="key farm">Key farm</li>
</ul>
</li>
<div id="result"></div>
我在 Handlebars 中有一个生成动态列表的代码。
<ul id="expList">
{{#each hierarchy}}
<li class="index">{{@key}}
<ul>
{{#each this}}
<li class="country">{{@key}}
<ul>
{{#each this}}
<li class="cluster">{{@key}}
<ul>
{{#each this}}
<li class="farm">{{@key}}
</li>
{{/each}}
</ul>
</li>
{{/each}}
</ul>
</li>
{{/each}}
</ul>
</li>
{{/each}}
</ul>
现在我希望在单击元素时打开网页。 URL 将是单击的元素及其父元素的组合。
由于是动态的所以没有 id,我应该如何在 jQuery 中附加一个 onClick 事件。
提前致谢。
您可以使用 on()
: http://api.jquery.com/on/
$(document).on("click", ".cluster", function(e) {
// you can get your clicked element here
console.log("event");
});
编辑
所以对于农场:
$(document).ready(function() {
$(document).on("click", ".farm", function(e) {
var idfarm= $(this).attr('data-id');
var idcluster= $(this).parent().parent().attr('data-id');
$("#result").html(idfarm +"|"+ idcluster);
console.log("event");
// This cant work in Whosebug sandbox allow-popups permission is not set
window.open('http://localhost:8000?farm='+idfarm+'&cluster='+idcluster,'GoogleWindow', 'width=800, height=600');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="cluster" data-id="key cluster">key cluster
<ul>
<li class="farm" data-id="key farm">Key farm</li>
</ul>
</li>
<div id="result"></div>