如何通过脚本标记将参数传递给jquery

时间:2017-04-27 17:15:32

标签: javascript jquery html parameters parameter-passing

我的代码做了什么: 当我按下按钮时,它会切换div的类。所以我可以按一个按钮,课程从" Class" to" SwitchToThisClass"它具有不同的属性集。

<script src="JS/SideNav-ShowOrHide.js"></script>

这是我的代码,我如何更改它,以便我可以放入参数,我也想使用相同的JS文件来更改多个类:

(function() {

  var bodyEl = $('body'),
    navToggleBtn = bodyEl.find('Class');

  navToggleBtn.on('click', function(e) {
    bodyEl.toggleClass('SwitchToThisClass');
    e.preventDefault();
  });

})();

例如像这个带参数且干净的代码,我希望能够使用具有不同参数的相同JS文件。我想换掉&#39; Class&#39;和&#39; SwitchToThisClass&#39;,并改为参数。

HTML:

<script src="http://path.to/widget.js" data-width="200" data-height="200">
</script>

外部JS档案:

<script>
function getSyncScriptParams() {
         var scripts = document.getElementsByTagName('script');
         var lastScript = scripts[scripts.length-1];
         var scriptName = lastScript;
         return {
             width : scriptName.getAttribute('data-width'),
             height : scriptName.getAttribute('data-height')
         };
 }
</script>

希望这是有道理的,谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

在您的目的中,您提出的建议没有多大意义,因为有更好的方法和更易于访问,并且还允许您模块化函数和传递参数。但是,如果这是您的最终决定,您有可能add custom attributes to HTML tags

当您继续编辑问题时,我会继续编辑我的答案。 Solution using data HTML attribute.data HTML attribute documentation.

我个人不喜欢将它用于脚本标签,我不推荐它。 为什么?因为你的源文件不是函数。文件没有参数(以某种方式表示)。 &#39;视觉&#39; HTML标记/元素或页面结构的东西与此数据绑定更相关。除非您的意图是在第一个实例中操纵标记本身。我认为永远不会。 我永远不会用它来将参数传递给文件中包含的函数。 我当然在这里发表意见。解决方案存在。

在您的情况下,您也面临着旧的浏览器支持。

我理解你想要的特定html文件中有一些静态值,用于传递给JS文件中包含的JS函数。

您可以做的是首先导入包含JS函数的JS文件:

<script src="JS/SideNav-ShowOrHide.js"></script>

我们假设您有一个我打电话的功能&#39; changeFunction&#39;在这个文件中。您的函数需要有一些输入参数,然后您可以在导入文件后立即从HTML中进行操作。

<script>
var classFrom = "class1";
var classTo = "class2";
changeFunction(classFrom, classTo);
</script>

或直接:

<script>
changeFunction("class1","class2");
</script>

另一方面,如果您需要的是管理特定项目的类,请查看如何add/remove classes from raw JS