我有一些实际上正在做同样事情的点击事件。有人告诉我,我应该使用一个案例开关,这样我就可以减少我的代码。但我不知道如何与点击事件结合使用。
$( "#wishlist_top" ).on( "click", function() {
window.hj=window.hj||function(){(hj.q=hj.q||[]).push(arguments)};
hj('tagRecording', ['Klikt op "wishlist" in menu']);
});
$( ".wishlist" ).on( "click", function() {
window.hj=window.hj||function(){(hj.q=hj.q||[]).push(arguments)};
hj('tagRecording', ['Klikt op "plaats op wishlist"']);
});
$( ".product_size" ).on( "click", function() {
window.hj=window.hj||function(){(hj.q=hj.q||[]).push(arguments)};
hj('tagRecording', ['Klikt op "maat advies"']);
});
$( ".product_stock" ).on( "click", function() {
window.hj=window.hj||function(){(hj.q=hj.q||[]).push(arguments)};
hj('tagRecording', ['Klikt op "maat niet beschikbaar?"']);
});
if ( $('*').hasClass('404') ) {
window.hj=window.hj||function(){(hj.q=hj.q||[]).push(arguments)};
hj('tagRecording', ['Klant is op een 404 pagina gekomen']);
}
谢谢!
答案 0 :(得分:3)
虽然你可以使用switch/case
,但这可能不是最好的主意。你仍然需要在每个类/ ID上监听click
个事件,所以我会创建一个函数并用特定的字符串调用它。
使用上面的代码,您可以创建如下函数:
function tagRecording(value) {
window.hj=window.hj||function(){(hj.q=hj.q||[]).push(arguments)};
hj('tagRecording', [value]);
}
现在只需使用click
监听器:
$( "#wishlist_top" ).on( "click",
function() { tagRecording('Klikt op "wishlist" in menu'); } );
因此,下次您想要更改代码时,只需更改tagRecording
功能(您可以根据需要重命名)。
答案 1 :(得分:1)
此处的另一个选择是在标记中使用数据属性。将要传递的邮件添加到每个元素中的data-text
属性 -
<a href="#" class="product_stock" data-text='Klikt op "wishlist" in menu'>Foo</a>
然后你可以设置一个JS处理程序,它从你的数据属性中获取文本:
$( ".product_stock" ).on( "click", function() {
window.hj=window.hj||function(){(hj.q=hj.q||[]).push(arguments)};
hj('tagRecording', $(this).data("text"));
});
当然,这只有在你控制了标记的创建时才有效。