将 href 点击函数放入 if-else 语句中

发布于 2024-10-03 12:08:26 字数 283 浏览 2 评论 0原文

我有一个函数

$("a[href*=/category/movies/]").click(function() {
so.addVariable('stretching','fill');
so.write('mediaspace');
});

,我想将其转换为 if...else 语句。

如何定位 div#header_playlist_categories 内的链接 并应用 else 语句,如果链接指向“/categories/movies/”以外的其他内容?

I've got this function

$("a[href*=/category/movies/]").click(function() {
so.addVariable('stretching','fill');
so.write('mediaspace');
});

that I want to turn into an if...else statement.

How do I target links inside div#header_playlist_categories
and apply an else statement, if links point to other than '/categories/movies/' ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

花辞树 2024-10-10 12:08:26

我认为您想要做的是处理 div#header_playlist_categories 中的 a 元素的所有点击。然后,如果链接的 href 属性包含 /category/movies/,您需要执行一项操作,如果不包含,则执行另一项操作。如果是这样,您可以使用 delegate() 很好地做到这一点:

$('#header_playlist_categories').delegate('a', 'click', function(e) {
    e.preventDefault();  // I imagine you always want to disable the default action

    if (this.href.indexOf('/category/movies/') !== -1) {
        so.addVariable('stretching','fill');
        so.write('mediaspace');
    } else {
        // do whatever else you want to do
    }
});

I think what you want to do is to handle all clicks on a elements within div#header_playlist_categories. You then want to do one thing if the link's href attribute contains /category/movies/ and another if it does not. If so, you can do this nicely using delegate():

$('#header_playlist_categories').delegate('a', 'click', function(e) {
    e.preventDefault();  // I imagine you always want to disable the default action

    if (this.href.indexOf('/category/movies/') !== -1) {
        so.addVariable('stretching','fill');
        so.write('mediaspace');
    } else {
        // do whatever else you want to do
    }
});
蝶舞 2024-10-10 12:08:26

您可以像这样使用 :not() 来获取 < em>其他链接:

$("#header_playlist_categories a:not([href*=/category/movies/])").click(function() {
  //something else
});

或者更便宜一点,检查循环:

$("a").each(function() {
 if(this.href.indexOf("/category/movies/") !== -1) {
   $(this).click(function() {
     so.addVariable('stretching','fill');
     so.write('mediaspace');
   });
 } else {
   $(this).click(function() {
     //something else
   });
 }
});

You can use :not() like this to get the other links:

$("#header_playlist_categories a:not([href*=/category/movies/])").click(function() {
  //something else
});

Or a bit cheaper, check in the loop:

$("a").each(function() {
 if(this.href.indexOf("/category/movies/") !== -1) {
   $(this).click(function() {
     so.addVariable('stretching','fill');
     so.write('mediaspace');
   });
 } else {
   $(this).click(function() {
     //something else
   });
 }
});
心不设防 2024-10-10 12:08:26

您应该将该事件委托给您的div# header_playlist_categories

在回调函数中,访问所单击链接的“href”属性,并根据其值对处理程序进行分支。

You should delegate that event to your div#header_playlist_categories.

Inside your callback function, access the "href" attribute of the link that was clicked and branch your handler based on its value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文