Я пытаюсь написать для вызова функции js в моей кнопке выбора, используя этот синтаксис...
Выбрать
но он не работает нормально... можете ли вы, ребята, сказать мне, как это исправить... предоставление моего кода ниже...
<div id="wrap_plans">
<div class="plan">
<div class="plan_head"><span class="hdr">Power</span><span class="tag">$64.95</span>
</div>
<div class="plan_spec"><span class="hdr">45 / 8</span> Mbps</div>
<button onclick="UversePlanSelector()">Select</button>
</div>
</div>
Во-первых, UversePlanSelector не был в глобальном объекте
Из:
function UversePlanSelector(wrap, plans_in, plans_tv) {...
// > ReferenceError: UversePlanSelector is not defined
Для того, чтобы:
UversePlanSelector = function UversePlanSelector(wrap, plans_in, plans_tv) {...
Seccond, UversePlanSelector - это конструктор
Из:
<button onclick="UversePlanSelector()">Select</button>
// > Uncaught TypeError: Object [object global] has no method 'init'
Для того, чтобы:
<button onclick="new UversePlanSelector()">Select</button>
В-третьих, UversePlanSelector принимает 3 аргумента, ни один из них не указан
Декларация:
UversePlanSelector = function UversePlanSelector(wrap, plans_in, plans_tv) {...
Вызов:
<button onclick="new UversePlanSelector( /* No args given */ )">Select</button>
Consecuence:
> Uncaught TypeError: Cannot read property 'length' of undefined
Возможно, в планах, но я думаю, что вы должны быть тем, кто отлаживает его дальше :-)
Jsfiddle превратит весь js-код в функцию, и поэтому ваш html не сможет увидеть. Чтобы исправить это, просто назначьте свою функцию переменной, как показано ниже:
window.f = function() {...} //instead of function f() {...}
Проверьте обновленный скрипач
in
как это, потому что этоreserved word
поэтомуthis.sel = {'in': -1, tv: -1}
кавычки:this.sel = {'in': -1, tv: -1}
и квадратные скобки:this.sel['in'] = -1;
И что должна делать эта строка?while (e = e.offsetParent) {
вы имели в виду===
. Также используйте строгое равенство при сравнении с0
... в лучшем случае используйте всегда:ix === 0
,a === b