0

背景

我生成动态 php 库,可以在其中使用 jquery UI 拖动图像。

所有图像都有裁剪选项。

在图库中首先列出的图像是图库的“标题图像”,并且与非“标题图像”具有不同的废话率。

问题

我回显出所有带有属性的图像'ondblclick="open_original=(21, 153)"'。我需要弄清楚如何才能将其更改open_originalopen_original_main仅用于画廊的第一张图像,以便它们可以具有不同的裁剪比例。

如果我使用.attr(),那么我会丢失所有属性值,并且无法取回它们。有没有办法只替换它们的函数名?

到目前为止,我的 jquery 解决了这个问题:

$(".galOf .gallery_nav:first-child .img_thumb img").ready(function(){
    $(this.ondblclick).replace("open_original","open_original_main");
});

我知道.replace()不是一个功能,只是阅读信息....

4

4 回答 4

1

你可以这样试试

var attrName = $('#image:first').attr("ondblclick");

var newAttrName = attrName.replace("open_original","open_original_main");

$('#image:first').attr("ondblclick", newAttrName );
于 2012-07-25T12:37:29.887 回答
0
$(".galOf .gallery_nav:first-child .img_thumb img").ready(function(){
  var val = $(this).attr("ondblclick"); // copy attribute value
  val = val.replace("open_original","open_original_main"); //replace
  $(this).attr("ondblclick",val); // set attribute value
});
于 2012-07-25T12:36:29.493 回答
0

似乎在 php 中更改 click 事件处理程序并回显正确的事件处理程序比使用 jquery 更改它更容易。只需使用计数器或类似的东西,如果计数器等于其初始状态,则使用“open_original_main”,否则使用“open_original”。

于 2012-07-25T12:28:58.143 回答
0

形成您在评论中所说的内容,似乎您想根据缩略图的位置做不同的事情。似乎这两个函数中的大部分代码都是相同的。您不需要将所有代码重复到一个新函数中。这是您可以执行的操作:

function open_img() {
  // is this the first image?
  var isFirst = $(this) == $('.galOf .gallery_nav:first-child .img_thumb img');

  if(isFirst) open_original(100, 100);
  else open_original (21, 153);
}
于 2012-07-25T12:47:43.320 回答