0

我正在调用一个 java/coffescript 函数typehandler(未显示),参数略有不同。这发生在应用程序的每个页面加载上。它实际上只需要在脚本适用的 3 或 4 页上发生。并且,在那些页面中,给定适当的参数,它应该只被调用两次:

#app/assets/javascripts/disk_items.js.coffee
jQuery(document).ready ->
  typehandler = (selector, url, hidden_id, entry_id) ->
  ...    
## if page is DiskItem#edit
typehandler '.projects_tt', '/projects.json', '#disk_file_project_code', '#project_code'
typehandler '.products_tt', '/products.json', '#disk_file_product_id', '#product_title'
## if page is InventoryItem#edit_multiple
typehandler '.projects_tt', '/projects.json', '#inventory_item_project_code', '#project_code'
typehandler '.products_tt', '/products.json', '#inventory_item_product_id', '#product_title'
...

如何:

  1. 仅在某些页面上运行脚本
  2. 设置第三个参数,#disk_file_project_code给定页面中的某些内容?也许是一个 HTML5data元素,或者它可以id从表单中获取它?

提前感谢您的任何见解......</p>

4

1 回答 1

0

将函数调用嵌入到脚本标记中的实际 html 页面中是否不可取?因为这可能是最简单的前进方式。

如果这被视为错误的形式,和/或由于某种原因函数调用必须在 js.coffee 文件本身中,那么您可以使用类似的方式检查您的位置

if window.location.href.indexOf("DiskItem/edit") > -1

并按照您的建议通过数据属性或表单值从 html 中提取第三个参数。

于 2013-08-29T00:09:42.090 回答