将Onclick函数传递给jQuery

时间:2012-06-14 19:18:51

标签: javascript jquery

我有一个jQuery函数,用主图像替换缩略图。 这是我用来替换主图像的代码:

$(document).ready(function(){
    $(".wheelFinishThumbs a").click(function() {
    var mainImage = $(this).attr("href");
    var mainTemp = mainImage.replace(/-mid/,'');
    var mainTemp = mainTemp.replace(/png/,'jpg');
    $("#main_view img").attr('src', mainImage );
    $("#main_view a").attr('href',mainTemp);
    return false;       
    });

我使用PHP函数通过更改标题值来下载(保存)图像。这是我用来下载图片的HTML代码

<a href="#" onclick="window.open('download.php?file=image.jpg','_self', 'download', 'status=0');">Click to download</a> 

但是因为“image.jpg”必须是我的动态变量,所以我必须在jQuery图像替换函数中调用此参数,并在每次更改主图像时动态替换“image.jpg”。我想从我的图像交换功能中用var mainImage替换image.jpg。

我的jQuery知识非常有限,所以如果有人能帮我做,那就太棒了。

2 个答案:

答案 0 :(得分:4)

这应该可行,假设您正在使用jQuery 1.7 +

在动态设置href为新图像后,假设您的标记标记是这样的

<a href="urltoSomeImage.jpg" id="main_view">Download Image</a>

JavasScript

$(function(){
  $(document).on("click","#main_view",function(e){
      e.preventDefault();
      var self=$(this);
      alert("replace this with awesome code")

      window.open('download.php?file='+self.attr("href")+,'_self', 'download', 'status=0');
  });
});

请注意,此函数仅适用于单个元素,因为我们的目标是将功能绑定到具有id main_view的元素。由于ID在DOM中应该是唯一的,如果你想拥有许多标签的功能,我会为这样的标签添加一个公共类选择器

<a class="aDownloadble" href="urltoSomeImage2.jpg" id="main_view">Download Image2</a>
<a class="aDownloadble" href="urltoSomeImage4.jpg" id="main_view">Download Image4</a>

像这样更新我的脚本

$(function(){
  $(document).on("click",".aDownloadble",function(e){
      e.preventDefault();
      var self=$(this);
      alert("replace this with awesome code")

      window.open('download.php?file='+self.attr("href"),'_self', 'download', 'status=0');
  });
});

jQuery on是不必要的。您可以直接使用click事件绑定。但是,如果您通过动态ajax /注入到DOM加载这些链接的标记,则应使用onlive

答案 1 :(得分:0)

$(document).ready(){

    $("#main_view a").click(function() {
     // Code to run when user clicks on link
    });
});
相关问题