Javascript 使用案例开关单击

Javascript 使用案例开关单击,javascript,switch-statement,Javascript,Switch Statement,我有一些点击事件,他们实际上也在做同样的事情。有人告诉我应该使用case开关,这样我就可以减少代码。但我不知道如何与点击事件结合使用 $( "#wishlist_top" ).on( "click", function() { window.hj=window.hj||function(){(hj.q=hj.q||[]).push(arguments)}; hj('tagRecording', ['Klikt op "wishlist" in menu']); }); $( "

我有一些点击事件,他们实际上也在做同样的事情。有人告诉我应该使用case开关,这样我就可以减少代码。但我不知道如何与点击事件结合使用

$( "#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']);
}

谢谢大家!

虽然您可以使用
开关/case
进行此操作,但这可能不是最好的主意。您仍然需要侦听每个类/ID上的
单击
事件,因此我将创建一个函数并使用特定字符串调用它

使用上面的代码,您可以创建如下函数:

function tagRecording(value) {
    window.hj=window.hj||function(){(hj.q=hj.q||[]).push(arguments)};
    hj('tagRecording', [value]);
}
现在只需使用
单击
侦听器,如下所示:

$( "#wishlist_top" ).on( "click",
    function() { tagRecording('Klikt op "wishlist" in menu'); } );

因此,下次您想更改代码时,只需更改
tagRecording
功能(您可以随意重命名)。

虽然您可以使用
开关/案例来实现此目的,但这可能不是最好的主意。您仍然需要侦听每个类/ID上的
单击
事件,因此我将创建一个函数并使用特定字符串调用它

使用上面的代码,您可以创建如下函数:

function tagRecording(value) {
    window.hj=window.hj||function(){(hj.q=hj.q||[]).push(arguments)};
    hj('tagRecording', [value]);
}
现在只需使用
单击
侦听器,如下所示:

$( "#wishlist_top" ).on( "click",
    function() { tagRecording('Klikt op "wishlist" in menu'); } );

因此,下次要更改代码时,只需更改
tagRecording
函数(您可以随意重命名它)。

这里的另一个选项是在标记中使用数据属性。将要传递的消息添加到每个元素中的
数据文本
属性-

<a href="#" class="product_stock" data-text='Klikt op "wishlist" in menu'>Foo</a>

当然,这只有在您可以控制标记的创建时才有效。

这里的另一个选项是在标记中使用数据属性。将要传递的消息添加到每个元素中的
数据文本
属性-

<a href="#" class="product_stock" data-text='Klikt op "wishlist" in menu'>Foo</a>

当然,这只有在您可以控制标记的创建时才有效。

我看不出在这里使用
开关可以做什么,因为您处理不同的情况时没有什么不同。相反,您以相同的方式处理不同的情况,这意味着您可以将重复的代码分解为一个单独的方法,只需从onclick调用该方法,将唯一的字符串作为参数传递给该方法。我同意Jim的观点。您可能希望将这两个常用语句组合成一个函数,然后让每个单击事件调用该函数,并在参数中发送差异(用于
hj()的两个参数)
但我不确定这是否真的会让你少清理一点代码。哈哈,我看到下面的答案正是我所说的。感谢大家的帮助!我不知道在这里使用
开关会做什么,因为你处理不同的情况不是不同的。相反,你是以相同的方式处理不同的情况,w这意味着您可以将重复的代码分解为一个单独的方法,只需从onclick调用该方法,并将唯一的字符串作为参数传递给该方法。我同意Jim的观点。您可能希望将这两个常见语句组合成一个函数,然后让每个单击事件调用该函数,并在参数(
hj()
的两个参数,但我不确定这是否真的会让你少清理一点代码。哈哈,我看到下面的答案正是我所说的。感谢大家的帮助!非常感谢!非常感谢!