【问题标题】:How to send parameter on function calling in "jQuery Ui Draggable Helper"?如何在“jQuery Ui Draggable Helper”中的函数调用中发送参数?
【发布时间】:2012-04-11 11:36:42
【问题描述】:

我正在使用 jQuery UI 插件来拖放我的对象,但是我遇到了问题。 我的html源码是这样的:

<html>
 <body>
  <div id="firstDiv">some thing is here</div>
 </body>
</html>

现在,我想使用 helper 拖动上面的 div。我的代码是这样的:

<script type="text/javascript">
 $(document).ready(function(){
  $("#firsstDiv").draggable({helper:anImage});
 });
 function anImage() {
  return '<img src="~/myImage.png" alt="" />';
 }
</script>

好的,这段代码也可以,但是我想设置图像地址,但是当我将函数更改为有参数时,它不起作用,O_o

我的新代码是这样的:

<script type="text/javascript">
 $(document).ready(function(){
  $("#firsstDiv").draggable({helper:anImage($(this).text())});
 });
 function anImage(address) {
  return '<img src="'+address+'" alt="" />';
 }
</script>

但不工作。

感谢您的帮助。

【问题讨论】:

  • 你想让你的函数接受地址作为参数吗?您可以发布您尝试过的代码吗?什么不起作用?
  • ** **

标签: jquery-ui draggable


【解决方案1】:

好的 - 你不能将参数传递给你的辅助函数。我很确定这就是问题所在。

解决此问题的方法是创建一个设置函数,然后从那里调用您的 anImage 函数:

$(function(){
    $("#firsstDiv").draggable({
        helper: setup
   });
});

// function to setup draggable DOM elements
function setup() {
    anImage("~/myImage.png");
    // ... do other setup things here too
}

function anImage(imageAddress) {
    return '<img src="'+imageAddress+'" alt="" />';
}

当然,除非您尝试为每个可拖动元素使用不同的图像地址调用anImage,在这种情况下,上述方法将不起作用。但无论如何,您都不应该使用辅助函数来执行此操作,因为我很确定它只是为了包含设置您正在创建的所有可拖动元素的代码。

希望这会有所帮助,

詹姆斯

【讨论】:

  • 好的,不错的作弊 ;)。但是我有不止一个div,而且这个地址不一样。 like this='helper: anImage($(this).text())'
  • 这就是我在最后评论中的意思——你不应该使用 setup 方法来设置每个可拖动 div 的单独要求,它应该用于设置每个 div 的所有通用属性。您可能希望为设置每个单独的 div 做一些不同的事情。
猜你喜欢
  • 1970-01-01
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 2011-08-28
  • 1970-01-01
相关资源
最近更新 更多